实验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
总结与体会:
对于段有了更进一步的了解,对于汇编程序的编译也更加娴熟了,但仍旧又很多不足,要更加努力鸭~