王爽《汇编语言》实验13:编写、应用中断例程 - 打印字符串 解答

中断例程:
assume cs:code

code segment
start:
	mov ax,cs
	mov ds,ax
	mov si,offset prints
	mov ax,0
	mov es,ax
	mov di,200h
	mov cx,offset printsend-offset prints
	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
;dh 行号 dl列号 cl颜色 ds:si字符串首地址
prints:
	push si
	push ax
	push es
	push di
	push cx

	mov ax,0b800h
	mov es,ax

	mov al,160d
	mul dh
	mov di,ax
	mov al,2
	mul dl
	add di,ax
	
	mov al,cl
	mov ch,0
	print:
	mov cl,ds:[si]
	jcxz printok

	mov es:[di],cl
	mov es:[di+1],al
	inc si
	add di,2
	jmp short print

	printok:
	pop cx
	pop di
	pop es
	pop ax
	pop si
	iret

	printsend:
	nop

code ends
end start


测试程序:
assume cs:code

data segment
 db "welcome to masm!",0
data ends

code segment
start:
	mov dh,10
	mov dl,10
	mov cl,2
	mov ax,data
	mov ds,ax
	mov si,0
	int 7ch
	mov ax,4c00h
	int 21h
code ends
end start



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值