014-无条件跳转指令jmp+
l 无条件跳转指令jmp
l goto指令
l 优化后的指令
l 标志寄存器PSW
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
OF |
DF |
IF |
TF |
SF |
ZF |
AF |
PF |
CF |
|||||||
零 标志 |
标志寄存器PSW(程序状态字寄存器PSW)
标志寄存器PSW是一个16为的寄存器。它反映了CPU运算的状态特征并且存放某些控制标志。8086使用了16位中的9位,包括6个状态标志位和3个控制标志位。
CF(进位标志位):当执行一个加法(减法)运算时,最高位产生进位(或借位)时,CF为1,否则为0。
ZF零标志位:若当前的运算结果为零,则ZF为1,否则为0。
SF符号标志位:该标志位与运算结果的最高位相同。即运算结果为负,则SF为1,否则为0。
OF溢出标志位:若运算结果超出机器能够表示的范围称为溢出,此时OF为1,否则为0。判断是否溢出的方法是:进行二进制运算时,最高位的进位值与次高位的进位值进行异或运算,若运算结果为1则表示溢出OF=1,否则OF=0
PF奇偶标志:当运算结果的最低16位中含1的个数为偶数则PF=1否则PF=0
AF辅助进位标志:一个加法(减法)运算结果的低4位向高4位有进位(或借位)时则AF=1否则AF=0
另外还有三个控制标志位用来控制CPU的操作,可以由程序进行置位和复位。
TF跟踪标志:该标志位为方面程序调试而设置。若TF=1,8086/8088CPU处于单步工作方式,即在每条指令执行结束后,产生中断。
IF中断标志位:该标志位用来控制CPU是否响应可屏蔽中断。若IF=1则允许中断,否则禁止中断。
DF方向标志:该标志位用来控制串处理指令的处理方向。若DF=1则串处理过程中地址自动递减,否则自动递增。
OD里能查看到除IF标志外的 8个标志位
一、GOTO与JMP
无条件跳转指令
格式: JMP A
1. 其中A为转移的目的地址。程序转移到目的地址所指向的指令继续往下执行。
// JZ/JE JNZ/JNE 都需要一个条件,条件成立才跳转,而jmp不需要。
2. 本组指令对标志位无影响.
3、代码测试
//goto jmp
printf("begin\n");
goto end;
printf("do this");
end:
printf("end\n");
getchar();
二、优化后的指令
/0d 禁用优化
/01 最小化大小
/02 最大化速度
/0x 完全优化
014-无条件跳转指令jmp+相关推荐
- 【debug】汇编跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
汇编跳转指令: JMP.JECXZ.JA.JB.JG.JL.JE.JZ.JS.JC.JO.JP 等 2017年11月12日 15:01:09 zmmycsdn 阅读数 19334 转自:http:// ...
- 16.控制转移指令(条件跳转指令、比较条件跳转指令、多条件分支跳转指令、无条件跳转指令)
目录 1.控制转移指令 1.1 条件跳转指令 1.2 比较条件跳转指令 1.3 多条件分支跳转指令 1.4 无条件跳转指令 1.控制转移指令 控制转移指令分为如下图所示的5种,其中比较指令在算术指令中 ...
- STM32--汇编语言:子程呼叫与无条件跳转指令B、BL、BX和BLX
1.B:无条件转移 B指令是最简单的跳转指令.一旦遇到一个B指令,ARM处理器将立即跳转到给定的目标地址,从那里继续执行.注意,存储在跳转指令中的实际值是相对当前PC值的一个偏移量,而不是绝对地址,它 ...
- ARM汇编:汇编语言跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
跳转指令分三类: 一.无条件跳转: JMP; 二.根据 CX.ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转).JECXZ(ECX 为 0 则跳转); 三.根据 EFLAGS 寄存器的标志位 ...
- 汇编跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
转自:http://www.cnblogs.com/del/archive/2010/04/16/1713886.html http://pan.baidu.com/s/1gVTSi 跳转指令分三类: ...
- 学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等...
跳转指令分三类: 一.无条件跳转: JMP; 二.根据 CX.ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转).JECXZ(ECX 为 0 则跳转); 三.根据 EFLAGS 寄存器的标志位 ...
- 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
跳转指令分三类: 一.无条件跳转: JMP; 二.根据 CX.ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转).JECXZ(ECX 为 0 则跳转); 三.根据 EFLAGS 寄存器的标志位 ...
- 汇编语言——跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP
一.无条件跳转: JMP; 二.根据 CX.ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转).JECXZ(ECX 为 0 则跳转); 根据标志位跳转的指令: JE ;等于则跳转 JNE ;不 ...
- 汇编语言跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
跳转指令分三类: 一.无条件跳转: JMP; 二.根据 CX.ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转).JECXZ(ECX 为 0 则跳转); 三.根据 EFLAGS 寄存器的标志位 ...
最新文章
- 美国三院院士「迈克尔•乔丹」长文论述:为什么说「人工智能革命」尚未发生...
- 存储虚拟化之带内设备与基于存储控制器的虚拟化
- Shell中自定义函数
- YOLOv3最全复现代码合集(含PyTorch/TensorFlow和Keras等)
- (44)css面试题集锦一
- 10个最重要SQL Server事务日志神话
- 【转载】 C#中使用int.TryParse方法将字符串转换为整型Int类型
- 《计算机小常识》一不小心把windows资源管理器给结束任务了,电脑黑屏了怎么办?
- RHEL 7关闭防火墙及SElinux
- SDOI2015 序列统计
- 网传的南方某科技大学最新研究成果
- stm32f7 java_STM32F7开发-安装MDK超详细操作步骤
- 2021机动车检测站签字授权人考试专业基础知识部分题库与答案
- 什么是托管C++ (managed C++)
- 2018 ICPC焦作站 F题 Honeycomb【bfs】
- N张图片合成一个最终图片(像素图片)
- 喷管烧蚀仿真过程中的常见问题
- SCI论文发表的流程是怎样的?
- [Windows] 获取设备唯一标识
- Ubuntu服务器上用CornerNet-Squeeze训练自己的模型