为什么寄存器BX的值是原来的值乘以2再减去原来的值。
时间: 2024-02-29 12:54:35 浏览: 11
在这段程序中,首先将寄存器BX的值向左移动1位,相当于乘以2,所以此时的值是原来的值的2倍。然后将这个值压入栈中。接着将寄存器BX的值向左移动4位,相当于乘以16,此时的值是原来的值的16倍。然后将栈中的值弹出到寄存器CX中,此时寄存器CX的值是原来的值的2倍。最后将寄存器BX的值减去寄存器CX的值,即为原来的值的16倍减去原来的值的2倍,即为原来的值乘以14,所以最终寄存器BX的值是原来的值乘以2再减去原来的值。
相关问题
寄存器BX的值减去寄存器CX的值即原来的值乘以14,为什么寄存器BX的值是原来的值乘以2再减去原来的值
非常抱歉,我在前面的回答中犯了一个错误。在这段程序中,首先将寄存器BX的值向左移动1位,相当于乘以2,所以此时的值是原来的值的2倍。然后将这个值压入栈中。接着将寄存器BX的值向左移动4位,相当于乘以16,此时的值是原来的值的16倍。然后将栈中的值弹出到寄存器CX中,此时寄存器CX的值是原来的值的2倍。最后将寄存器CX的值从寄存器BX的值中减去,即为原来的值的2倍,所以最终寄存器BX的值是原来的值乘以2再减去原来的值。对于前面的错误回答,我深表歉意,感谢您的指正。
11、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如保护现场程序为: PUSH AX PUSH BX ;保护现场 PUSH CX PUSH DX …… { }恢复现场 试写出恢复现场时的指令序列。 12、用三种方法实现将AX中的数清零。(每种方法用一条指令) 13、写出指令序列,将DX的第0位、第5位取反,第2位清零,第3、4位置1。 14、写出对存放在DX和AX中的双字长数乘以8的指令序列。 15、写出求一个数绝对值的宏定义。
11、恢复现场时的指令序列为:
```
POP DX ;恢复DX寄存器的值
POP CX ;恢复CX寄存器的值
POP BX ;恢复BX寄存器的值
POP AX ;恢复AX寄存器的值
```
12、将AX中的数清零的三种方法:
```
XOR AX, AX ;方法1:使用异或指令
MOV AX, 0 ;方法2:将立即数0传送给AX寄存器
SUB AX, AX ;方法3:将AX寄存器中的值减去自身的值
```
13、将DX的第0位、第5位取反,第2位清零,第3、4位置1的指令序列为:
```
MOV CX, 21H ;将二进制数 0010 0001 传给CX寄存器
NOT DX ;将DX寄存器中的所有位取反
AND DX, CX ;将DX寄存器中第0位、第5位清零,第2位保持不变,第3、4位都置为1。
```
14、将DX和AX中的双字长数乘以8的指令序列为:
```
SHL AX, 1 ;将AX中的数左移一位,相当于乘以2
SHL AX, 1 ;再将AX中的数左移一位,相当于乘以2的平方
SHL AX, 1 ;再将AX中的数左移一位,相当于乘以2的立方
SHL DX, 1 ;将DX中的数左移一位,相当于乘以2
SHL DX, 1 ;再将DX中的数左移一位,相当于乘以2的平方
SHL DX, 1 ;再将DX中的数左移一位,相当于乘以2的立方
```
15、求一个数绝对值的宏定义:
```
ABS MACRO num
MOV AX, num ;将num传给AX寄存器
SAR AX, 15 ;算出AX寄存器的符号位,0表示正数,-1表示负数
XOR AX, num ;如果是负数,就将num取反,否则不变
SUB AX, num ;如果是负数,就再次将num取反,否则不变
ENDM
```
使用方法:在程序中定义宏后,可以通过 `ABS num` 来调用宏求num的绝对值,例如:
```
ABS -5 ;将-5的绝对值求出来
```
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)