回 帖 发 新 帖 刷新版面

主题:[讨论]说出你的秘密

stack    segment    stack
    dw    100 dup (?)
stack    ends
data    segment    
    x1    db    'please input d,tell you a secret! ','$';必须'$'结尾
    x3    db    'I love You !','$'        ;
    x4    db    'press any key to escape ','$'
data    ends
prog    segment   ;在es段中定义子过程
xx    proc    far ;须段间调用的用far类型(即不在主过程段中)
    mov    ah,    9h
    int    21h    
    ret
xx    endp
prog   ends
code    segment
    assume    cs:code,ds:data,ss:stack,es:prog
start:    
    mov    ax,data
    mov    ds,ax
    mov    ax,stack
    mov    ss,ax
    mov    ax,prog
    mov    es,ax
    mov    dx, offset    x1
    call   far ptr xx   ;call影响al中的内容
    mov    ah,1h
    int    21h
    cmp    al, 'd' ;输入字符与'd' 比较,非'd' 就执行
    jne    start

    mov    dx, offset    x3   
    call   far ptr xx
    mov    dx, offset    x4   
    call   far ptr xx
    mov    ah,1h   ;等待输入,用来观看结果,否则窗口一闪就没有拉
    int    21h
mov ax,4c00h
    int    21h
code    ends
    end    start
大家运行看看,第一次弄成功拉,好高兴,把这个程序记录在这里,供初学者观摩

回复列表 (共5个回复)

沙发

用mov ah  4ch时,al中是不是自动变成00拉??

为何mov ah,4ch
       int 21h
与mov ax,4c00h
       int 21h
一个效果呢 !!!!

板凳

呵呵。。。
mov ah,4ch
不会把返回码变0
或者你之前根本没副职
返回码才为0
你必须有父进程(可以是symdeb或command(批处理或98的/Z参数)等没调用任何其他中断之前)调用中断21h功能4dh即可获得返回码

3 楼

[quote]呵呵。。。
mov ah,4ch
......[/quote]

汇编中也支持 进程 调用的 ??

4 楼

[quote][quote]呵呵。。。
mov ah,4ch
......[/quote]

汇编中也支持 进程 调用的 ??
[/quote]
那是dos的进程 4c代表4c号进程 int 21h都是dos的中断进程

5 楼


恩 ,只是不能并行处理而已

我来回复

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