空手套小白狼 发表于 2012-3-22 12:52:27

监测点10.5过程看的懂,但是答案不一样。

assume cs:code
data segment
dw 8 dup (0)
data ends
code segment
start:
mov ax,data
mov ss,ax
mov sp,16
mov word ptr ss:,offset s
mov ss:,cs
call word ptr ss:
nop
s:
mov ax,offset s
sub ax,ss:
mov bx,cs
sub bx,ss:
mov ax,4c00h
int 21h
code ends
end start   真的没看懂,ax=1,bx=0 咋子来的。在debug调试结果页和这个不一样。

http://bbs.fishc.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 空手套小白狼的微博

莫名其妙 发表于 2012-3-22 13:07:35

本帖最后由 莫名其妙 于 2012-3-22 13:19 编辑

没仔细看题目吧不让你用debug 调试看结果让你用call 原理 理解!!~

注意题里都是用ss:[]调用的都是栈内数据 栈内数据就要从栈顶开始看 有多少次数据进栈进栈的数据是什么   sp 指向哪里值是多少

callword ptr 内存单元地址
相当于执行
push ip
jmpword ptr 内存单元地址
注意指针变化
sp=0eh

call dword ptr内存单元地址
相当于执行
push cs
push ip
jmpdword ptr 内存单元地址
注意指针变化
sp=0ch
就这些提示了 自己看看吧!~
页: [1]
查看完整版本: 监测点10.5过程看的懂,但是答案不一样。