2.3 几条汇编指令
前面我们说过,汇编指令通过控制CPU进行工作,那么下表是几条汇编指令。
注意,为了使具有高级语言基础的读者更好理解指令的含义,有时会用文字描述和高级语言描述这两种方式来描述一条汇编指令的含义。在写一条汇编指令或一个寄存器的名称时不区分大小。如:mov ax,18和MOV AX,18的含义相同。
接下来看一下CPU执行下表中的程序段的每条指令后,对寄存器中的数据进行的改变。
注意:AX与BX初始值分别为,AX中的值:0000H BX中的值:0000H
其实结合上面两个表,我们可以清楚了解到MOV与ADD指令的作用。MOV就相当于C语言中的对一个变量进行赋值的操作,例如:int ax = 18。ADD相当于C语言中的+=运算,例如: int ax += bx。这么解释,大家都理解吧。
那么假如在上表中,我们执行这么一条指令:ADD AX,BX,运算后,AX的值是多少?相信不少人认为是1044CH,其实这也是对的,但是在这里是错的。因为我们前面说过,AX寄存器是16位寄存器,只能存放4位十六进制的数据,最大能保存的数据是FFFFH,所以在这里,最高位的1不能保存在AX中。所以最终的结果为:044CH。
我们再来看一个表
在这里,如果有认真看小吴的笔记,就会知道AL,AH,BL,BH其实就是小吴前面说过的AX16位寄存器中的高8位AH和低8位AL。有人会对ADD AL,BL的运算有疑惑,在这里小吴给大家解释一下。
AX中的数据存放如下表:
0 |