实验五

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)

 

 

 

posted @ 2018-11-25 18:54  好风借力  阅读(160)  评论(0)    收藏  举报