实操汇编原理cmp指令 对比sub与cmp指令

359 阅读1分钟
mov ax, 5
mov bx, 5
cmp ax, bx

这段指令是5-5=0,但是并不是在寄存器中a改值:
在这里插入图片描述
在这里插入图片描述
还没有给ax寄存器放值之前如上图,放入ax和bx之后如下图:
在这里插入图片描述
这个时候再step调试一步也就是走cmp ax,bx之后变成如下:
在这里插入图片描述
这里可以看到ax并没有发生改变,改变的是flags:
0x82->0x46
转换成二进制:1000_0010->0100_0010
查看表格:
在这里插入图片描述

可以看到第7位的改变从1变为0,这是因为结果0也算正数。
第六位变成了1,因为这是0是一个零标志。
类似的如果是sub指令:
在这里插入图片描述
会影响到累加器ax,这就是sub与cmp指令的区别。