设堆栈指针 SP=2000H,AX=3000H,BX=5000H;请编一程序段将 AX 和 BX 的 内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用 DEBUG 调试程序进行汇编与调试 在32位docbox中如何操作
时间: 2023-11-22 21:56:10 浏览: 84
在32位DOSBox中操作时,可以使用16位汇编语言进行编写和调试。以下是将AX和BX内容进行交换的程序段:
```
MOV SP, 2000H ; 设置堆栈指针
PUSH AX ; 将AX压入堆栈
MOV AX, BX ; 将BX的值存入AX
PUSH AX ; 将AX压入堆栈
POP BX ; 将堆栈顶部的值弹出到BX
POP AX ; 将堆栈顶部的值弹出到AX
```
使用DEBUG进行汇编和调试的步骤如下:
1. 打开DOSBox,并进入命令行界面。
2. 输入debug命令,按回车键进入DEBUG模式。
3. 在DEBUG模式下,输入如下汇编代码段:
```
MOV SP, 2000H
PUSH AX
MOV AX, BX
PUSH AX
POP BX
POP AX
```
4. 按回车键执行代码段。
5. 使用命令d来查看寄存器的值,确保AX和BX的值已经交换。
6. 使用q命令退出DEBUG模式。
相关问题
设当前程序的堆栈段寄存器(SS)=6000H,堆栈指针寄存器(SP)=2000H,(AX)=3000H,(BX)=5000H,问执行PUSH,AX,PUSH BX和POP AX后,问(SS)=?(SP)=?(AX)=?(BX)=?并分别画图依次说明执行上述三条指令时堆栈指针的变化情况
执行PUSH AX后,(SS)=6000H,(SP)=1FFEh,(AX)=3000H,(BX)=5000H。
执行PUSH BX后,(SS)=6000H,(SP)=1FFCh,(AX)=3000H,(BX)=5000H。
执行POP AX后,(SS)=6000H,(SP)=1FFEh,(AX)=5000H,(BX)=5000H。
堆栈指针的变化情况如下图所示:
```
+-----------------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
+-----------------------+
6000H 2000H
SS SP
```
执行PUSH AX后,堆栈指针减少2,指向1FFEh。
执行PUSH BX后,堆栈指针再次减少2,指向1FFCh。
执行POP AX后,堆栈指针增加2,指向1FFEh。
1、运行监控程序 2、使用监控命令 3、使用监控命令窗口或debug系统,将下面程序段写入内存,逐条执行,观察并记录每条指令执行后,CPU中相关寄存器内容的变化。 机器码 汇编指令 b8 20 4e mov ax, 4e20h 05 16 14 mov ax,1416h bb 00 20 mov bx,2000h 01 d8 add ax,bx 89 c3 mov bx,ax 0a db add ax,bx b8 1a 00 mov ax,001ah bb 26 00 mov bx,0026h 00 d8 add al,bl 00 dc add ah,bl 00 c7 add bh,al b4 00 mov ah,0 00 d8 add al,bl 04 9c add al,9c
在使用监控命令窗口或debug系统的情况下,将下面程序段写入内存,逐条执行,观察并记录每条指令执行后,CPU中相关寄存器内容的变化。
假设将程序段写入内存的起始地址为1000H。
1. 将4E20H赋给寄存器AX
机器码:B8 20 4E
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:0000H、0000H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器AX的内容变为4E20H,其他寄存器不变。
2. 将1416H赋给寄存器AX
机器码:05 16 14
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:4E20H、0000H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器AX的内容变为1416H,其他寄存器不变。
3. 将2000H赋给寄存器BX
机器码:BB 00 20
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:1416H、0000H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器BX的内容变为2000H,其他寄存器不变。
4. 将AX与BX相加,并将结果存入AX
机器码:01 D8
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:1416H、2000H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器AX的内容变为3416H,其他寄存器不变。
5. 将AX的内容赋给BX
机器码:89 C3
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:3416H、2000H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器BX的内容变为3416H,其他寄存器不变。
6. 将BX与AX相加,并将结果存入AX
机器码:0A DB
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:3416H、3416H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器AX的内容变为6832H,其他寄存器不变。
7. 将001AH赋给寄存器AX
机器码:B8 1A 00
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:6832H、3416H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器AX的内容变为001AH,其他寄存器不变。
8. 将0026H赋给寄存器BX
机器码:BB 26 00
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:001AH、3416H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器BX的内容变为0026H,其他寄存器不变。
9. 将AL与BL相加,并将结果存入AL
机器码:00 D8
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:001AH、0026H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器AL的内容变为3CH,其他寄存器不变。
10. 将AH与BL相加,并将结果存入AH
机器码:00 DC
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:003CH、0026H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器AH的内容变为28H,其他寄存器不变。
11. 将BH与AL相加,并将结果存入BH
机器码:00 C7
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:282CH、0026H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器BH的内容变为3CH,其他寄存器不变。
12. 将0赋给寄存器AH
机器码:B4 00
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:282CH、0026H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器AH的内容变为00H,其他寄存器不变。
13. 将AL与BL相加,并将结果存入AL
机器码:00 D8
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:282CH、0026H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器AL的内容变为C2H,其他寄存器不变。
14. 将9CH加到AL中
机器码:04 9C
执行该指令前寄存器AX、BX、CX、DX、SI、DI、BP、SP的内容分别为:C2H、0026H、0000H、0000H、0000H、0000H、0000H、0000H
执行该指令后,寄存器AL的内容变为5EH,其他寄存器不变。
以上是每条指令执行后,CPU中相关寄存器内容的变化记录。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.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)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)