8086汇编:DOS系统功能调用表举例(INT 21h)二

续上一篇8086汇编:DOS系统功能调用表举例(INT 21h)

09 向标准输出写字符串

说明:DS:DX,保存字符串地址,字符串以"$"结尾

; write string to standard output
; 09.asm
; masm.exe 09.asm
; link.exe 09.obj
; 09.exe
data segment
s db 'hello, world!', '$'
data ends

code segment
        assume ds:data, cs:code

main:
        mov ax, data
        mov ds, ax

        lea dx, s
        mov ah, 09h
        int 21h

        mov ah, 4ch
        int 21h
code ends
end main

测试结果

0ah 缓存输入

说明:DS:DX=缓存地址

缓存:偏移0=能够读取的最大字符长度

偏移01=读取的字符个数

偏移02=字符串首地址

; buffered input
; 0a.asm
; masm.exe 0a.asm
; link.exe 0a.obj
; 0a.exe
data segment
buf db 10
db 0
db 10 dup('$')
data ends

code segment
        assume ds:data, cs:code

main:
        mov ax, data
        mov ds, ax

        lea dx, buf
        mov ah, 0ah
        int 21h

        mov dl, 10
        mov ah, 02h
        int 21h

        lea dx, [buf+2]
        mov ah, 09
        int 21h

        mov ah, 4ch
        int 21h
code ends
end main

测试结果

19h 获取当前默认磁盘

说明:返回值AL=drive(0=A,1=B,2=C等等)

; get current default drive
; 19.asm
; masm.exe 19.asm
; link.exe 19.obj
; 19.exe
data segment
data ends

code segment
        assume ds:data, cs:code

main:
        mov ax, data
        mov ds, ax

        mov ah, 19h
        int 21h

        mov ah, 4ch
        int 21h
code ends
end main

测试结果,3=D盘

2ah 获取系统日期

说明:返回值:CX = year (1980-2099) DH = month DL = day AL = day of week (00h=Sunday)

; get system date
; 2a.asm
; masm.exe 2a.asm
; link.exe 2a.obj
; 2a.exe
data segment
data ends

code segment
        assume ds:data, cs:code

main:
        mov ax, data
        mov ds, ax

        mov ah, 2ah
        int 21h

        mov ah, 4ch
        int 21h
code ends
end main

测试结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值