| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4800 人关注过本帖
标题:汇编子程序ret不到正确的地址
取消只看楼主 加入收藏
wlmnzf
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-8-7
收藏
 问题点数:0 回复次数:0 
汇编子程序ret不到正确的地址
assume cs:code,ds:data,ss:stack

data segment
x dw 1234
y dw 100 dup(?) ;存放数字的ASCII码
data ends

stack segment
dw 16 dup(?)
stack ends

code segment
start:
mov ax,stack
mov ss,ax
mov ax,data
mov ds,ax

mov dx,0
mov ax,x
mov si,0
call s

mov ax,4c00h
int 21h

s proc near
res:mov cx,10

push ax
mov ax,dx
mov dx,0
div cx
mov bx,ax
pop ax
div cx
mov cx,dx
mov dx,bx

push dx
add cl,30h
mov ds:[si+4],cl
pop dx
push ax
push dx
add ax,dx
jz goOut
pop dx
pop ax
inc si
jmp res

goOut:
pop dx
pop ax
mov dl,ds:[si+4]
mov ah,2
int 21h
cmp si,0
jz ok
dec si
jmp goOut

ok:
ret //这个地方使用ret回不到原来的地方,因为程序并未返回dos
;mov ax,4c00h //把ret直接改成返回dos就可以正常运行,请问是怎么一回事
;int 21h

s endp

code ends
end start
搜索更多相关主题的帖子: 子程序 
2015-04-17 22:46
快速回复:汇编子程序ret不到正确的地址
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041137 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved