汇编语言 王爽 实验九

实验9 题目要求

在这里插入图片描述

相关准备

在这里插入图片描述
在这里插入图片描述

工具

dosbox+MASM

分析

25X80要求在中间,那么是在12 13 14行以及32列处
16进制 C D E行
即 C*A0 = 780
列为64字节 即40H处

根据题目所给 三种颜色对应二进制和16进制为
00000010
02h

00100100
24h

01110001
71h

要想在一个循环里换三种颜色那就需要栈来更改值
所以引入3个字长的栈 要注意定义时也遵循先入后出的原则
栈顶控制cx的值
同时sp要指向2

dw 0,24h,71h

代码

assume cs:code, ds:data, ss:stack

data segment
	db 'Welcome to Masm!'
data ends

stack segment
	dw 0,24h,71h
stack ends

code segment
start:
	mov ax,0b800h
	mov ds,ax	
	mov ax,data  
	mov es,ax
	mov ax,stack
	mov ss,ax
	
	mov bx,0
	mov cx,3h
	mov dx,02h
	mov sp,2
s:
	push cx
	mov cx,10h
	mov di,0
	mov si,780h
	
	s2:  
	  mov al,es:[di]  
	  mov ah,dl
	  mov ds:[bx+si+40h],ax
	  add si,2
	  inc di
	loop s2
	
	add bx,0a0h
	pop cx
	pop dx
loop s

	mov ax,4c00h
	int 21h
	
code ends
end start

结果

在这里插入图片描述

一点问题

sp的值一定不要忘记 之前做实验8运气好没发现是因为栈中的值没有预先定义
定义栈的值时也遵循后入先出的原则

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

四位

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

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

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

打赏作者

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

抵扣说明:

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

余额充值