实验五
assume cs:code, ds:data, ss:stack
data segment
dw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h
data ends
stack segment
dw 0, 0, 0, 0, 0, 0, 0, 0
stack ends
code segment
tart: mov
ax,stack
mov ss, ax
mov sp,16
mov ax, data
mov ds, ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0]
mov ax,4c00h
int 21h
code ends
end start
编译连接
debug 下反汇编如下
使用g命令 和d命令查看返回前数据
(2)
猜想代码 数 应为42h-8h=3ah
编译连接反汇编
g命令 停在 程序运行前
发现猜想有问题 代码段只有20,可猜想剩下的应为数据段
d命令查看四个字节
于是占有的空间应为((n+15)/16)*16
3
经过编译和连接后我们可以得到可执行文件a3.exe
首先进行反汇编:可以看出代码数为44h根据实验2中的结论得代码段中的命令所占的字节数为24h
于是可以得到
使用g命令进行运行随后使用d命令查看内存
(4)运行后发现a3成功运行
(5)assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:mov ax,a
mov ds,ax
mov ax,b
mov es,ax
mov ax,c
mov ss,ax
mov cx,8
mov ax,0
s:mov al,[bx]
add al,es:[bx]
mov ss:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
(6)