int 7ch 显示字符串\0结束

;    用int 7ch显示字符串

assume cs:codesg
datasg segment
        db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
    start:
        ; 安装中断程序于0:200设置源地址与目的地址,并使用movsb传送
        mov ax, cs
        mov ds, ax
        mov si, offset doPrint
        mov ax, 0
        mov es, ax
        mov di, 200h
        mov cx, offset doPrint_end - offset doPrint
        cld
        rep movsb
        
        ;  设置向量表
        mov ax, 0
        mov es, ax
        mov word ptr es:[7ch*4], 200h
        mov word ptr es:[7ch*4 + 2], 0
        
        mov ax, datasg
        mov ds, ax
        mov si, 0
        ;    设置中断处理程序要处理字符串地址ds:0
        mov dh, 12
        mov dl, 2
        mov cl, 3
        int 7ch
        ;    调用打印函数
        mov ax, 4c00h
        int 21h
        
        ;dh  行号,dl 列号  cl  颜色 ,ds:si 指向首地址,遇到0返回
doPrint:

    push ax
    push bx
    push es
    push di
    push si
    push cx
    
    ; 计算偏移量
    mov al, 160
    mul dh
    mov bx, ax
    mov al, 2
    ;mov dl, 2
    mul dl
    add bx, ax
    ; 偏移量存储在bx中
    mov ax, 0b800h
    mov es, ax
    mov di, 0
    mov ah, cl
    mov ch, 0
print:
    mov cl, ds:[si]
    jcxz backshow_str
    mov al, cl
    mov es:[bx + di], ax
    add di, 2
    inc si
    jmp short print
    
backshow_str:
    pop cx
    pop si
    pop di
    pop es
    pop bx
    pop ax
    iret
    
doPrint_end:
    nop
                
        
codesg ends
end start

转载于:https://www.cnblogs.com/boota/p/3720615.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值