汇编
wuleibilly3
这个作者很懒,什么都没留下…
展开
-
指令: JO、JNO、JB、JNB、JE、JNE、JBE、JA、JS、JNS、JP、JNP、JL
名称 功能 操作数 操作码 模数 寄存器1 寄存器2或内存 位移量 立即数 符号 方向 芯片型号 16位 32位 JO 溢出跳转 短 $70 无 无 无 无 10 无 无 8086 无 无 JNO 不溢出跳转 短 $71 无 无 无 无 10 无 无 8086 无 无 JB 低于跳转 短 $72 无 无 无 无 10 无 无 8086 无 无 JNB 不低于跳转 短 $73 无 无 无 无 10 无 无 8086 无 无 JE 相等跳转 短 $74 无 无 无 无 10 无 无 8086 无转载 2010-08-27 10:51:00 · 4153 阅读 · 0 评论 -
CMP详解
cmp(compare)指令进行比较两个操作数的大小例:cmp oprd1,oprd2它影响flag的CF,ZF,OF,AF,PF我们怎么判断大小呢?若执行指令后ZF=1 这个简单,则说明两个数相等,因为zero为1说明结果为0当无符号时:若 CF=1 则说明了有进位或借位,cmp是进行的减操作,故可以看出为借位,所以,此时oprd1CF=0 则说明了无借位,但此时要注意ZF是否为0,若为0,则说明结果不为0,故此时oprd1>oprd2当有符号时:若SF=0,OF=0 则说明了此时的值为正数,没有溢原创 2010-09-02 14:40:00 · 2411 阅读 · 0 评论 -
标志位详解
进位标志CF(Carry Flag)的定义:当加减运算结果的最高有效位有进位(加法)或借位(减法)时,将设置进位标志为1,即CF=1;如果没有进位或借位,则设置进位标志为0,即CF=0。这是说,处理器执行一个加法或者减法指令,对两个数据进行了相加或者相减,除了一个和值或者一个差值外;如果出现最高位的进位或者借位,在标志寄存器中的这个进位标志CF位就被处理器设置成为1。假设处理器执行二进制8位数据加法指令,实现8位二进制数:00111010和01111100相加。运算结果是:1011011原创 2010-09-20 10:58:00 · 2506 阅读 · 0 评论 -
ENTER 和 LEAVE
释放当前子程序在堆栈中的局部变量,使BP和SP恢复成最近一次的ENTER指令被执行前的值。ENTER指令相当于PUSH BPMOV BP,SP LEAVE相当于:MOV SP,BPPOP BP原创 2010-10-09 17:10:00 · 496 阅读 · 0 评论 -
符号位
PF是奇偶标志 AF是辅助进位标志 ZF是零标志 SF是符号标志 CF:(carry Flag)进位标记,指两进制补码算法产生了进位,也就是最高位,无符号 附注:AF是BCD的进位标记OF:(Overflow Flag)溢出标记,指数值过大溢出了,有符号有“数值”含义,有符号“进位与符号无关,溢出与符号有关原创 2010-11-22 17:21:00 · 1788 阅读 · 0 评论 -
算术移位与逻辑移位有什么区别?
逻辑移位(不管是左移位还是右移位) 都是空缺处补0 例如: mov ax , 1100_0111_0110_1000B mov cl , 3 shl ax , cl ;转载 2013-03-26 20:28:51 · 1544 阅读 · 0 评论