关于汇编语言的一点问题,那位大虾帮忙一下,在线等!!!!!

来源:百度知道 编辑:UC知道 时间:2024/09/22 12:43:31
1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。
2、设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。在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.>Debug
-a100
nop
push cs
pop ss
mov sp,2000
mov ax,3000
mov bx,5000
push ax
mov ax,bx
pop bx
mov ah,4c
int 21

rcx
80

n jiaoHua.com
w
q

-------------------
2.>Debug
-a100
nop
push cs
pop ds
mov bx,300
mov si,2
MOV AX,BX ;BX值300H送AX -> AX=300H
MOV AX,0304 ;立即数304H送AX -> AX=304H
MOV AX,[0304];当前数据段,偏移304H处字送AX -> AX=000EH
MOV AX,[BX] ;当前数据段,偏移300H处字送AX -> AX=0B0AH
MOV AX,[BX+0001];当前数据段,偏移301H处字送AX -> AX=0C0BH
MOV AX,[BX+SI] ;当前数据段,偏移302H处字送AX -> AX=0D0CH
MOV AX,[BX+SI+0001];当前数据段,偏移302H处字送AX -> AX=0E0DH
HLT ;结束

e300 0A 0B 0C 0D 0E

n ChuanShu.com
rcx
280

w

q

当数据传送完毕时,AX中的内容是0E0DH.