实验10 编写子程序1显示字符串

本文介绍了一个MASM编程实例,详细展示了如何使用MASM指令来显示字符串,并解释了关键的汇编语言概念,如行和列的计算、颜色设置、jcxz、call和ret指令的用法。

分析:

这个程序用到了这章大部分知识,请仔细阅读本章内容。还有用到了上一个实验的知识点。

如果你了解了以上两点,这道题目将很容易就敲出来了。

需要知识点:(书上都有)

1、行和列的计算和颜色的了解

2、jcxz的用法

3、call和ret的用法

4、怎样判断0

assume cs:code

data segment
	db 'Welcome to masm!',0
data ends

code segment
start:
	mov dh,8
	mov dl,3
	mov cl,2
	mov ax,data
	mov ds,ax
	mov si,0
	call show_str
	
	mov ax,4c00h
	int 21h
	
show_str:	;其实这是一个子程序,里面是包含s和ok的,这样理解容易些
	mov al,160
	mul dh
	mov bx,ax
	mov al,2
	mul dl
	add bx,ax	;计算出行和列加起来的偏移量
	mov ax,0B800h
	mov es,ax	;es:[bx]为要输入的显示区
	mov al,cl	;先将cl中的颜色数值显示出来
	mov ch,0	;ch前半段要为0,因为用不上,避免判断0s
	
s:	;判断是否为0,否就输入到显示区
	mov cl,[si]
	jcxz ok
	mov es:[bx],cl
	mov es:[bx+1],al
	add bx,2
	inc si
	jmp short s
	
ok:	;返回
	ret

code ends
end start

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值