(在指定位置显示指定颜色字符串)王爽汇编语言第三版实验10.1

这篇博客介绍了如何使用汇编语言在指定的屏幕位置(8行3列)以特定颜色显示字符串。内容包括初始化数据段和屏幕位置、清理屏幕的函数实现,以及显示字符串的详细步骤。实验展示了汇编语言在处理屏幕输出时的控制能力。
摘要由CSDN通过智能技术生成

功能

在指定位置用指定的颜色,显示一个用0结束的字符串
在屏幕的8行3列,用绿色显示data段中的内容

代码部分

1.初始化

首先data段中给定指定的字符串并且以0结尾
stack栈段初始为空

assume cs:code,ds:data,ss:stack
data segment
	db 'Welcome to masm!',0
data ends
stack segment stack
	db 128 dup(0)
stack ends

初始化ss,sp表示栈

		mov ax,stack
		mov ss,ax
		mov sp,128

调用初始化函数,用来初始化ds表示数据段,es表示屏幕中的位置

init_reg:
		mov bx,0b800h
		mov es,bx

		mov bx,data
		mov ds,bx
		ret

题目要求我们显示在第八行第三列,我们分别写设置行和列的函数

行的函数,每行占160字节所以我们只要将寄存器设置成160*行数,然后再用es+寄存器即可

get_row:
		mov al,160
		mul dh
		ret	

列的函数,每个位置占两个字节第一个表示内容,第二个表示颜色,所以这里我们要给列数*2,然后用es+寄存器即可

get_col:
		mov al,2
		mul dl
		ret
2.清理屏幕

题目中没有让清理屏幕,但是这里为了美观我们写一个清理屏幕的函数
直接将dx设置成0700h 07表示空 00表示没有颜色,然后设置循环次数2000次,每次将dx赋值给es:[di]即可,记得要push pop用到的寄存器

clear_screen:
		push bx
		push cx
		push es
		push si

		mov bx,0b800h
		mov es,bx
		mov si,0
		
		mov dx,0700h
		mov cx,2000
clearscreen:
		mov es:[si
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

White boy&

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

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

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

打赏作者

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

抵扣说明:

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

余额充值