www.whkt.net > mov Al 80h

mov Al 80h

这句话的意思把80H(注意这个数是十六进制因为其结尾是H)这个立即数放到寄存器AX的低八位AL中去(这里假设寄存器AX是十六位的;AX可以分开为AH和AL来用,其中AH是AX的高八位而AL是低八位).

很简单 80h+80h之后得数是100h 由于al是8位寄存器,所以存不下100h,一位16进制的数字等于4位二进制数.100h已经达到12位了.所以al存不下了.你可能有疑问那100h的1去哪里了?他在 cf位,也就是标志寄存器的进位标志中.

AX=0200H

MOV指令不影响标志位 ,原来是多少就是多少

MOV SP, #80H ;就是将堆栈从80H开始.由于“除法程序”使用了原程序的工作寄存器,所以会影响其数值.30H既然是用来记录,那么为什么不可以变啊?调试开始然后暂停又开始,就相当于程序的执行,当然会改变变量的值的.

MOV DX,383H 、dx存入383h MOV AL,80H al存入80h OUT DX,AL 向383h端口写入80h

test指令是将源操作数与目的操作数作按位与运算,但不改变目的操作数,也即按位与结果只影响标志位,目的操作数不变.处理器中都会有一个标志寄存器,在8086中叫程序状态字寄存器psw,psw寄存器中有一个zf位,当一条指令运算结果为0时,zf位置位(1),否则清0(0).jz n指令是当psw寄存器的zf为1时,就跳转到标号n处执行,否则顺序执行 test al, 01h ;寄存器al中内容与立即数01h做与运算 jz n ;上一条指令结果为0就跳转 就是当al的最低位为0时跳转,为1时顺序执行

个人感觉哪个都不对呢? 应该是B1H吧..

第一条ES是附加段寄存器,具体意思是把BX中的值赋给ES,第二条是把80H这个值赋到BX这个寄存器中,第三条是把内存单元(段地址在ES中,偏移地址在BX中)的值赋给CL(8位)PS:不同的CPU都会有不同的汇编指令,我的是按照8086来说的,上头的CL我给你细说一下8086是16位机,8088是8位机,为了兼容8088就把8086的四个寄存器AX,BX,CX,DX分别用AX,AH表示高八位,AL表示第八位BX,BH表示高八位,BL表示第八位CX,CH表示高八位,CL表示第八位DX,DH表示高八位,DL表示第八位希望对你有帮助

网站地图

All rights reserved Powered by www.whkt.net

copyright ©right 2010-2021。
www.whkt.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com