|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 天长地久 于 2012-7-28 20:06 编辑
我真是想不通call后IP的数据是保存在哪个位置的? ret又怎么能跳回来!
call 执行不是要先push ip 然后在 jmp吗? 没栈段怎么保存IP?
ret 执行不是要先pop ip 然后在 jmp吗? 上面都没保存怎么知道IP是多少?
代码编译后可以正确执行!
我是入门级的,请高手指点指点!代码如下!
assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start: mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show
mov ax,4c00h
int 21h
show: mov ax,0b800h
mov es,ax
mov al,dh
mov ah,0
mov bl,160
mul bl
mov bx,0
mov bl,dl
add bl,dl
mov di,ax
s: mov ah,cl
mov al,ds:[si]
mov cl,ds:[si]
jcxz s0
mov cl,3
mov es:[bx+di],ax
inc si
add bx,2
loop s
s0: ret
code ends
end start
|
|