《汇编语言》第三版_王爽_实验9

详情请参考《汇编语言》 p187 实验九——根据材料编程

请看实现代码:

assume cs:code,ds:datasg

datasg segment
  db 'welcome to masm!'	;待处理字符
  db 02H,24H,71H		;从10H定义颜色
datasg ends

stack segment
 dw 8 dup(0) 			;定义栈空间
 stack ends
code segment

start: 	mov ax,datasg
		mov ds,ax
		mov ax,stack
		mov ss,ax
		mov sp,10H
		mov ax,0b872h	;计算出屏幕第12行中间显存的段起始位置
		mov es,ax
		mov bx,0
		mov di,0
		mov si,10H		;颜色属性存放起始位置
		mov cx,3		;设置外循环3次

	s:	push cx			;入栈保护cx
		
		mov cx,16		;设置内循环16次
	s0:	;将字符写入显存
		mov al,[bx]
		mov es:[di],al
		;将属性写入显存
		mov al,[si]
		mov es:[di+1],al	;奇数为颜色属性
		
		inc bx
		add di,2		;奇数为颜色属性
		loop s0
		
		add di,128			;换行
		inc si				;更换颜色属性
		mov bx,0			;内循环后将bx置零

		pop cx				;出栈恢复cx计数器值(外循环)
		loop s
		
		mov ax,4c00h
		int 21h

code ends
end start

以上代码仅供参考,可以有多种方法实现。

实验效果如下:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值