8088汇编跳转和PSW状态字寄存器
DDD
| 8088 汇编跳转 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 日期:2003年6月12日 出处:嬴政天下整理收藏 作者:看雪 人气: 8735 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
一、状态寄存器 PSW(Program Flag)程序状态字寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下所示:
条件码: 控制标志位: 二、 直接标志转移(8位寻址)
三、间接标志转移(8位寻址)
四、无条件转移指令(fisheep译 fisheep@sohu.com)
五、16位/32位寻址方式(fisheep译
注:一些指令操作数的含义说明: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
无条件转移指令
| 指令格式 | JMP 地址表达式 | |||
| 指令功能 | 无条件地转移到由地址表达式所确定的目标单元。本指令对标志位无影响。 | |||
| 无条件转移指令根据其转移范围的大小可以分为以下四种方式: | ||||
| 四种方式 | 1.段内直接转移 | 2.段内间接转移 | 3.段间直接转移 | 4.段间间接转移 |
| 说 明 | 这是一种相对寻址方式。它转移的目标地址是当前IP内容加上一个八位相对位移量(DISP), DISP是汇编程序在汇编源程序时,根据目标地址和当前IP之间的距离自动生成的。 | 它转移的目标地址是可通过寄存器或存贮单元来寻址。 | 在一条无条件转移指令中的地址表达式是一个段间(FAR)标号或段间标号加减一常量(必须在该标号所在段内)时,则该指令被汇编成一个段间直接转移指令代码。 | 此指令的目标地址由存贮器寻址方式指定的内存中的连续两个字来决定,低地址的字取代IP,高地址的字取代CS。 |
| 指令功能 | IP=IP+Disp | IP=Reg16 或 IP=Mem16 | ||
条件转移指令
| 指令格式 | <指令助记符> <短标号> | |
| 指令说明 | 当满足条件而发生转移的指令,称之为条件转移指令。它们以某些标志位或这些标志位的逻辑运算作为依据,若满足指令所规定条件,则程序转移,否则顺序执行。 | |
| 1.根据单个标志位的条件转移指令: | 2.用于无符号数的条件转移指令: | 3.用于带符号数的条件转移指令: |
| (1)有进位转移(JC)或无进位转移(JNC) (2)等于/为零转移(JE/JZ)或不等于/非零转移(JNZ) (3)负数转移(JS)或正数转移(JNS) (4)溢出转移(JO)或不溢出转移(JNO) (5)偶校验转移(JP/JPE)或奇校验转移(JNP/JPO) (6)寄存器CX为零转移(JCXZ) |
(1)高于转移(JA)/不低于且不等于转移(JNBE) (2)高于或等于转移(JAE)/不低于转移(JNB) (3)低于转移(JB)/不高于且不等于转移(JNAE) (4)低于或等于转移(JBE)/不高于转移(JNA) |
(1)大于转移(JG)/不小于且不等于转移(JNLE) (2)大于或等于转移(JGE)/不小于转移(JNL) (3)小于转移(JL)/不大于且不等于转移(JNGE) (4)低于或等于转移(JLE)/不高于转移(JNG) |
注意:这类指令的转移范围只能在离当前IP的-128-+127个字节之内。它们对标志位均无影响。
重复控制指令
这类指令主要用来控制软件循环的重复过程,故又称作循环控制指令。
| 指令名称 | 指令功能 |
| (1)LOOP指令 | 将CX内容减一,若CX不等于0,则循环至目标地址处(即IP+DISP);否则顺序执行后续指令。 |
| (2)LOOPZ/LOOPE指令 | 将CX内容减一,若CX不等于0,且标志位ZF=1时,才循环至目标地址处;否则顺序执行后续指令。 |
| (3)LOOPNZ/LOOPNE指令 | 将CX内容减一,若CX不等于0,且标志位ZF=0时,才循环至目标地址处;否则顺序执行后续指令。 |
| (4)JCXZ指令 | 寄存器CX为零转移(JCXZ),这条指令前面已经介绍过。 |
注意:在执行此类重复控制指令前必须把重复次数送入寄存器CX中。
标志操作指令
|
清进位指令CLC
|
清除进位标志 CF←0 |
|
置进位指令STC
|
置进位标志 CF←1 |
|
清除方向位指令CLD
|
清除方向标志 DF←0
|
|
置方向位指令STD
|
置方向标志 DF←1
|
|
清中断允许指令CLI
|
清除中断标志 IF←0
|
|
置中断允许位指令STI
|
置中断标志 IF←1
|
处理器控制指令 |
||
| 处理器暂停指令 | HLT | 使CPU进入暂停状态,不进行任何操作,它可被"外部中断"和复位信号来清除。该指令不影响任何标志,常在程序中为了等待中断而使用。 |
| 空操作指令 | NOP | 该指令不进行任何操作,它仅充当一种为不做任何操作的“转向”点提供标号的手段。 |
| 处理器等待指令 | WAIT | 在处理器的引脚TEST=1时,使处理器进入等待状态;直到TEST=0,等待状态被清除,并恢复执行原停止的指令。 |
| 处理器交权指令 | ESC | 指出使用的协处理器编号及执行的操作,并为协处理器写指定一个操作数。 |
| 总线封锁指令 | LOCK | 使CPU的LOCK信号线上产生一个有效电位,以禁止总线上的其他主设备进行总线访问。 |
8088汇编跳转和PSW状态字寄存器的更多相关文章
- lmsw - 加载机器状态字
将源操作数加载到机器状态字,即寄存器 CR0 的位 0 到 15.源操作数可以是 16 位通用寄存器或内存位置.只有源操作数的低 4 位(也就是 PE.MP.EM 及 TS 标志)会加载到 CR0.C ...
- IC卡T0协议中的过程字与状态字
T0协议中,IC卡收到命里头以后向TTL回传过程字或状态字SW1.SW2: TTL和IC卡在二者之间的命令和数据交换的任何时刻都必须知道数据流的方向和IO线路由谁驱动. 摘录参考:<中国金融集成 ...
- 对状态字的理解 尤其是 首次检测位“/FC”的想法
状态字 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BR CC1 CC0 OV OS OR STA RLO /FC 问题1 关于首次检测位& ...
- arm汇编学习(六)---跳转到thumb状态
通常函数返回使用 pop {r7,pc}或bx lr等方式(bx,b类似jmp为跳转指令,但bx可以指定跳转区域究竟为thumb还是arm指令.thumb指令指令的时候,直接填写该地址却总是产生SIG ...
- 关于程序状态字寄存器PSW(Program Status Word)与多核多线程
内核态(Kernel Mode)与用户态(User Mode) CPU通常有两种工作模式即:内核态和用户态,而在PSW中有一个二进制位控制这两种模式. 内核态:当CPU运行在内核态时,程序可以访问所有 ...
- JavaScript学习总结 Ajax和Http状态字
Ajax及其工作原理 AJAX 是一种与服务器交换数据无需刷新网页的技术,最早由Google公司在谷歌地图里使用,并迅速风靡. AJAX是不能跨域的,如需跨域,可以使用document.domain= ...
- arm学习之汇编跳转指令总结
目前所知道的跳转指令有 b,bl,bep,bne.他们共同点是都是以b开头,首先从字面上分析:b:是Branch,表示分支.bl:是Branch Link表示带连接的分支.bep:Branch ,Eq ...
- JavaScript学习总结(七)Ajax和Http状态字
转自:http://segmentfault.com/a/1190000000691919 Ajax及其工作原理 AJAX 是一种与服务器交换数据无需刷新网页的技术,最早由Google公司在谷歌地图里 ...
- SIMATIC 1500 PLC 同步轴,状态字StatusWord信号描述
轴名. StatusWord.X21 (Synchronizing) 正在建立同步 轴名. StatusWord.X22 (Synchronous) 已经建立同步
随机推荐
- 算法导论 第六章 2 优先队列(python)
优先队列: 物理结构: 顺序表(典型的是数组){python用到list} 逻辑结构:似完全二叉树 使用的特点是:动态的排序..排序的元素会增加,减少#和快速排序对比 快速一次排完 增 ...
- Struts2执行原理
[原理图] [MVC] [执行过程(重要!!!!!)] 1) 客户端浏览器发出请求时,被Tomcat服务器所接收.Tomcat容器将用户的请求封装为HttpServletRequest对象 2) 请求 ...
- 一个jboss启动shell脚本
脚本1: #!/bin/sh # paulo@evencom.com.br #JBOSS_HOME JBOSS_HOME="/opt/app/jboss-eap-6.3" JAVA ...
- xtu字符串 B. Power Strings
B. Power Strings Time Limit: 3000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java c ...
- 【随机化算法】codeforces Matrix God
http://codeforces.com/gym/101341 [题意] 给定三个方阵A,B,C,问AB=C是否成立? 方阵的规模最大为1000 [思路] 求AB的时间复杂度为n*n*n,会超时 左 ...
- hdu 4043 FXTZ II [ 概率 + Java大数]
传送门 FXTZ II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- MYSQL Explain语法
Explain语法 EXPLAIN SELECT …… 变体: 1. EXPLAIN EXTENDED SELECT …… 将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得 ...
- isinstance()和issubclass()
内置函数中有个两个函数经常用到 isinstance() 对象 是否是 类 的一个对象 from collections import Iterable prin ...
- django学习之- json序列化
序列化操作 - Errordict - 自定义Encoder - django的模块可以直接序列化 第一种: from django.core import serializers # 通过这个模块对 ...
- python学习之-- socketserver模块
socketserver 模块简化了网络服务器的编写,主要实现并发的处理. 主要有4个类:这4个类是同步进行处理的,另外通过ForkingMixIn和ThreadingMixIn类来支持异步.sock ...