|
20鱼币
本帖最后由 943566987 于 2014-5-15 11:38 编辑
assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start: 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 21
code ends
end start
我在做实验五答案跟我理解的有一定出入 所以发出来想问问我这样做是否正确
(1) CPU执行程序,程序返回前 cs= ss= ds=
程序载人后CS值是1446我用U查看了一下
执行到PUSH 【2】看了一下SS 是1445
程序执行到POP 【0】要执行到下一条指令 DS是1444
因此答案是 CS=1446 SS=1445 DS=1444不知道我这样做答案是否正确
(2)设程序加载后,CODE段的段地址为X,则DATA段的段地址为 X-2 ,STACK段的段地址为 X-1 为什么DATA段地址是X-2,STACK段地址是X-1 这道题我不明白去解释
|
|