汇编语言:实验十 编写子程序

掌握子程序技巧:字符串显示、除法溢出处理与数值展示实践
本文介绍了三个子程序实验:1) 如何在显存中显示字符串,理解内存布局;2) 解决除法溢出问题的编程技巧;3) 数值的逐位显示,涉及C语言基础知识。通过这些实践,提升汇编语言编程能力与问题解决策略。

实验10 编写子程序

这次实验需要编写三个子程序,通过它们来认识几个常见的问题和掌握解决这些问题的方法。

1.显示字符串
问题

在这里插入图片描述

子程序描述

在这里插入图片描述

提示

在这里插入图片描述

Solution

跟之前的文章的风格相似,都是用王爽老师原书中的描述,在完成第一个程序之前,需要稍微了解一下显存相关的内容:汇编语言:实验九 根据材料编程
了解了显存相关的知识,可以动手操作操作了,题目需要将字符串显示在特定的行列,如果学习过数据结构或者对二维数组较为了解,求解二维数组中R行C列的元素前面一共有多少个元素?一定知道这么一个计算方法:(R * nums + C),nums表示每一行元素的个数。
在这里插入图片描述

显存内存的分布也可以类比成二维数组,每一行一共有 80 个元素,每个元素占用 2 个字节,那么每一行占用了80 * 2 = 160字节,求解R行C列前面占用的空间就可以得到表达式:(R * 160 + C * 2 ) 字节。

实现代码
assume cs:code, ds:data
data segment
	db 'Welcome to masm!',0
data ends
code segment
start:
	mov dh, 10	;行号 范围 0 ~ 24
	mov dl, 3	;列号 范围 0 ~ 79
	mov cl, 2	;颜色(取值范围0 ~ 79)
	
	mov ax, data
	mov ds, ax
	
	mov si, 0;ds偏移
	mov di, 0;es偏移
	mov bl, cl	;bl保存需要改变的颜色
	
	mov ax, 0B800H
	mov es, ax;显存位置
	
	mov 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nepu_bin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值