《汇编语言》第四版——实验九

本文档介绍如何使用汇编语言编程,在屏幕中间显示绿色、绿底红字和白底蓝字的'welcome to masm!'字符串。通过两层循环实现,强调熟练运用寄存器和栈进行地址定位的重要性。
摘要由CSDN通过智能技术生成

题目

编程:在屏幕中间分别显示绿色、绿底红字,白底蓝字的字符串’welcome to masm!’。

在这里插入图片描述

具体的材料知识参考课本

分析

两层循环,外层循环控制显示的行,内层循环控制每一行中数据的复制,需要用到的数据在data段中定义好,方便循环,熟练运用各种寄存器来灵活地定位地址是结题的必要条件,寄存器不够用的话就用栈暂存。

代码

assume cs:code,ds:data

data segment
	db 'welcome to masm!'
	dw 06e0h,0780h,0820h  ;显存第一页第12、13、14行的起始偏移地址
	db 02h,24h,71h        ;绿色,绿底红字,白底蓝字的属性机器码
data ends

code segment
	
start:	
		mov ax,data
		mov ds,ax		;ds 存放 data 的段地址
		
		mov ax,0B800h   
		mov es,ax		;es 存放显存第一页的段地址
		
		mov bx,0		;bx 存放 样式属性 的相对地址     
		mov bp,0		;bp 存放 行数偏移地址 的相对地址 
		
		mov cx,3		;外层循环3次
		s:	;外层循环,控制行数
		
			push cx
			mov cx,16	;内层循环16次
			mov di,0	;di 存放 data中字符偏移地址
			mov si,64	;si 存放 显存中每行存第一个字符的起始偏移地址
			
	
  • 0
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值