汇编语言:汇编程序的hello world程序(实验9根据材料编程)

实验介绍

学习每一种编程语言,第一个程序一般都是hello world,一般都是往控制台进行输出。但是学习汇编语言,汇编语言王爽这本书学习了一大半才有了往控制台输出内容。这是教材中的实验9 根据材料编程的实验,在屏幕中间分别显示黑底绿色、绿底红色、白底蓝色的字符串'welcome to masm!'。权且当做汇编语言的hello world的吧

实验结果

先展示运行程序运行结果


实验思路

其实就是往显存里面放数据!一个源数据段,一个目的数据段,一个临时数据段。显示3种不同颜色的字符串,可以用一个loop循环,往显存中放字符串,同样需要一个loop ,所以就要使用loop嵌套循环,使用嵌套循环 那么cx 就要存放到临时数据中。然后就是显示器每行80个字符,每个字符占2个字节,偶数字节存放字符ASCII码值,奇数字节存放显示属性。一定要明确数据在哪里,数据怎么处理,数据放哪里,这3个问题

实验代码

;实验9 编程:在屏幕中间分别显示黑底绿色、绿底红色、白底蓝色的字符串'welcome to masm!'
assume cs:codesg

data segment
	db 'welcome to masm!'	;16个字符
	db 00000010B	;黑底绿字
	db 00100100B	;绿底红字
	db 01110010B	;白底绿字
data ends
stack segment
	dw 0
stack ends

codesg segment
start:
	;设置栈段 存放临时数据
	mov ax,stack
	mov ss,ax
	mov sp,2
	
	
	;往目的地址->显示器缓存区写东西就可以了
	mov ax,0B800H
	mov es,ax
	;源地址
	mov ax,data
	mov ds,ax
	

	mov si,16
	mov di,160*11+160/2-16	;每页25行,在11~13行进行居中展示。注意一个字符2个字节!	
	
	mov cx,3
	showWelcom:	
		push cx
		
		mov cx,16
		mov bx,0
		;每行80个字符,80个字节,显示属性占80个字节,一行占 160个字节
		showString:
			mov al,ds:[bx]
			mov es:[di],al		;偶数字节 放字符ASCII值
			mov al,ds:[si]	
			mov es:[di+1],al	;奇数字节 放颜色属性值
			inc bx
			add di,2
		loop showString
		
		add di,128
		add si,1
		pop cx
	loop showWelcom
	mov ax,4c00h
	int 21h
codesg ends
end start


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值