寻址方式及指令使用探究
一、实验内容:
- 堆栈指针和寄存器操作:设定堆栈指针SP为2000H,AX为3000H,BX为5000H。编写程序段实现AX和BX内容的交换,使用堆栈作为交换的中介。使用DEBUG进行程序的汇编与调试。
- 内存偏移地址操作:以当前段地址为DS,BX设为0300H,SI为0002H,使用DEBUG命令将0AH,0BH,0CH,0DH,0EH顺序装入内存偏移地址300H~304H。在DEBUG环境下执行以下程序,使用单步执行法分析每条指令的源地址形成过程,记录AX中数据传输完成后的内容。
- 程序清单:
MOV AX,BX
MOV AX,0304H
MOV AX,[0304H]
MOV AX,[BX]
MOV AX,0001[BX]
MOV AX,[BX][SI]
MOV AX,0001[BX][SI]
HLT
二、实验报告:
1. 程序说明
任务一:
功能:交换AX和BX的内容
结构:
任务二:
功能:将0AH,0BH,0CH,0DH,0EH连续送入AX中
结构:
2. 调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
任务一:
任务二:
3、写出源程序清单和执行结果。
任务一:
CODE SEGMENT
ASSUME CS:CODE
START:
MOV AX,3000H
MOV BX,5000H
MOV SP,2000H
PUSH AX
MOV AX,BX
POP BX
MOV AX,4C00H
INT 21H
CODE ENDS
END START
运行结果:AX=5000H,BX=3000H
任务二:
运行结果:AX=0E0DH