回 帖 发 新 帖 刷新版面

主题:问点小问题

;子程序名:ISDECM
;功能:叛变一个字符是否为数字
;入口参数:AL=字符
;出口参数:CF为0表示字符是数字字符,否则字符是非数字字符
ISDECM  PROC
    CMP AL,'0'
    JB ISDECM1
    CMP AL,'9'
    JA ISEDCM1
    CLC 
    RET
ISDECM1:STC
        RET
ISDECM ENDP


他说出口参数是CF,
RET后面没东西,我不知道怎么样确定返回的是什么,怎么看出口参数?


/////////////////////////////////////////////////////////////////////////
OR指令
比如OR AL,AL
我知道OR中,自己或自己,值不变
AL里面存储的是字符,这条指令怎么能判断是否到了字符串结尾???




回复列表 (共4个回复)

沙发

ret并不改变AX,BX,CX,DX,SI,DI,BP,DS,ES,SS,EFLAGS的值。
只改变SP,IP,CS的值。
iret改变复原EFLAGS。

板凳

那我又想到一个问题需要问题
既然ret并不改变AX,BX,CX,DX,SI,DI,BP,DS,ES,SS,EFLAGS的值。
我的入口参数假如是AL,出口参数也是AL,在子程序中如果改变了AL,怎么给主函数?

你说的是ret不改变那些值,至于子程序中就如我说的改变了AL的值,那主程序要用算不算改变?

3 楼

自己写个程序测试一下,能自己解决的自己解决.

4 楼


对于需要保护的东西可以压入堆栈

我来回复

您尚未登录,请登录后再回复。点此登录或注册