王爽老师实验9中的内容是对前面数据分配以及数据结构化的总结,通过对dosbox中B800H-BFFFH内存空间进行操作,写入的内容可以显现在显示器上,下面是对实验9题目的解答以及分析
题目信息
在屏幕中间分别显示绿色,绿地红色,白底蓝色的字符串‘welcome to masm!’.
题目答案
assume cs:code,ds:data,ss:stack
code segment
start: mov ax,data
mov ds,ax ;数据那里来
mov ax,0b800H
mov es,ax ;数据到哪里去
mov bx,0 ;数据通过bx寄存器获取
mov si,10H ;数据颜色通过si寄存器获取
mov di,160*10+ 30*2 ;显示数据的位置(数据到哪里去?)
mov dx,0 ;临时存放数据寄存器
mov cx,3
showmasm:push bx ;外层循环控制显示行数
push cx
push si
push di
mov cx,16
ShowRow:mov dh,ds:[si] ;内循环控制每一行数据的存储
mov dl,ds:[bx] ;
mov es:[di],dx
add di,2
inc bx
loop ShowRow
pop di
pop si
pop cx
pop bx
inc si
add di,160
loop showmasm
mov ax,4c00H
int 21H