【汇编语言】(第三版)实验9解答

时间:2021-10-05 11:29:00
做了【汇编语言】(第三版)的实验9,勉强做出了效果,特意贴在这儿请求前辈们多多指点不足的地方,感谢!
assume cs:code,ds:data

data segment
	db 'Welcome to masm!'	;定义字符串(将在显示缓冲区显示,共16个字节)
	db 2h,24h,71h		;定义每一行的颜色(各占一个字节)
data ends

stack segment
	dw 8 dup (0)	;用来临时存放CX的值
stack ends

code segment

start:	mov ax,data
	mov ds,ax	;初始化data段
	mov bx,1760	;初始化起始行坐标

	mov ax,stack
	mov ss,ax	;初始化栈段
	mov sp,8	;初始化堆栈指针

	mov ax,0b800h
	mov es,ax	;初始化ES段,使其指向显示缓冲区

	mov bp,0	;初始化bp,指向颜色值
	mov cx,3	;初始化CX寄存器,控制外层循环次数

s:	push cx		;CX入栈
	mov si,0	;指向字符,每次偏移量为1
	mov di,70	;初始化起始列坐标
	mov cx,16	;内层循环次数

s0:	mov al,ds:[si]
	mov es:[bx+di],al
	mov ah,ds:[16+bp]
	mov es:[bx+di+1],ah

	inc si
	add di,2
	loop s0

	add bx,160
	inc bp
	pop cx
	loop s

	mov ax,4c00h
	int 21h
	
code ends

end start
效果图
【汇编语言】(第三版)实验9解答