实验5

(1)

由反汇编指令得到,stack段地址为076B,data段地址为076A,而code段地址为076C。

各个段之间呈现这样的关系,也许是因为一个段中最多能存放64KB的数据吧。

 

(2)

(3)

(4)

(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

首先,通过反编译查看C段的段地址为076C

用d命令查看值。

执行但返回前,再次用查看值,发现值改变了,经验证,为a段和b段的值相加。

 

(6)

assume cs:code
a segment
    dw 1,2,3,4,5,6,7,8
a ends
b segment
    dw 0,0,0,0,0,0,0,0
b ends
code segment 
start:mov ax,a 
mov ds,ax
mov ax,b
mov ss,ax
mov sp,16
mov cx,8
mov bx,0
s:push [bx]
inc bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start

总结与体会:

对于段有了更进一步的了解,对于汇编程序的编译也更加娴熟了,但仍旧又很多不足,要更加努力鸭~

posted @ 2018-11-23 21:17  xxxux_onezero  阅读(329)  评论(0)    收藏  举报