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

如果要用两个程序实现, 必须用实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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值