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

实验介绍

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

实验结果

先展示运行程序运行结果

汇编语言:汇编程序的hello world程序(实验9根据材料编程)_第1张图片

实验思路

其实就是往显存里面放数据!一个源数据段,一个目的数据段,一个临时数据段。显示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


你可能感兴趣的:(【Language_Asm】,8086CPU汇编学习)