王爽汇编 Lab 13 Question 1, 用两个程序实现

本文详细介绍了一个使用DOSBox环境下的程序设计案例,包括了中断例程的安装代码和运行使用例程的程序代码。通过具体实例,展示了如何在实DOS环境下进行程序设计,对于学习和了解早期计算机操作系统的编程具有一定的参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果要用两个程序实现, 必须用实DOS,或者用DosBox。 我是用DosBox实现的。

安装和中断例程代码如下

assume cs:code 
code segment
start:    ;installtion
        mov ax, cs
        mov ds, ax
        mov si, offset shwtxt
        mov ax, 0
        mov es, ax
        mov di, 200h
        mov cx, offset shwtxtend-offset shwtxt
        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, 4c00h
        int 21h
        
shwtxt:    push cx
        push si
        push bx
        push ax 
        mov ah, 160 
        mul dh
        mov bx, ax 
        mov ah, 32
        mul dl
        Add ax, bx         
        mov di, ax
        pop ax
        pop bx
        mov ax, 0b800h
        mov es, ax 
        mov al, cl
nxtchr:    mov cl, [si]        
        mov ch, 0
        jcxz ok 
        mov ch, al
        
        mov es:[di], cx
        add di, 2
        inc si
        jmp short nxtchr 
    ok:    pop si
        pop cx    
        iret 
shwtxtend: nop
code ends

end start  


运行和使用例程的程序如下

assume cs:code
data segment
    db "welcome to masm!",0
data ends
code segment
start:    mov dh, 12
        mov dl, 8
        mov cl, 01110001B
        mov ax, data
        mov ds, ax
        mov si, 0
        int 7ch
        
        mov ax, 4c00h
        int 21h 
code ends

end start  


转载于:https://www.cnblogs.com/yangbin990/archive/2011/12/18/2291761.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值