一道小小的汇编题目

    技术2022-07-16  131

    关于汇编伪指令,逻辑移位操作的一道题目:

    DA3 EQU WORD PTR DA4 DA4 DB 0ABH,89H SHR DA3,1 MOV DX,DA3 SHL DA4,1 MOV CX,DA3 上述程序段运行后,CX= ,DX= DA3 EQU WORD PTR DA4 ;DA3和DA4相当于是数值相等的2个变量,其中一个发生变化时,另外一个也会立刻发生变化;此条伪指令相当于用DA3这个变量占用一个字(2个字节)的空间 DA4 DB 0ABH,89H ;这条指令执行后,会在内存空间中给DA4分配一个字的空间存放89ABH,其中89H是在高地址存放,也是数值的高位,0ABH是在低地址存放,也是数值的低位,但是变量的最小可分割单元是字节 SHR DA3,1 ;逻辑右移指令执行后,DA3的值由89ABH变为44D5H,右移一位相当于除以2,二进制的最低位丢掉,二进制的最高位填入0 同时DA4在内存中的值也变化为44D5H MOV DX,DA3 ;数据传送指令,DX的值变为44D5H,不影响标志寄存器的值 SHL DA4,1 ;逻辑左移指令执行,相当于是将DA4变量的第一个可分割单元的值左移一位,第一个单元的值由D5H变化为AAH,最终DA4的值由44D5H变为44AAH 同时DA3在内存中的值也变化为44AAH MOV CX,DA3 ;数据传送指令,CX的值变为44AAH,不影响标志寄存器的值

    所以最终,(CX)=44AAH,(DX)=44D5H

    Processed: 0.011, SQL: 9