实验题目和原理见书本(汇编语言王爽 第3版)(188~189):
代码:
;在屏幕上以不同背景或字体颜色显示'I Love Huihui '
assume cs:code,ss:stack,ds:data
data segment
db 'I love Huihui '
db 00000010B,00100100B,01110001B
data ends
stack segment
db 128 dup(0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,128
call s
mov ax,4c00h
int 21h
;====================================================
s: mov ax,0B800h
mov es,ax
mov bx,16
mov si,0
mov di,160*12+64 ;在屏幕中间显示
mov cx,3
change: push di ;二重循环利用栈来保存变量,注意push 与 pop的顺序
push cx
mov cx,16
changeColor: push cx
mov dh,ds:[bx] ;高位存颜色属性
mov dl,ds:[si] ;低位存字符
mov es:[di],dx
add di,2
inc si
pop cx
loop changeColor
add bx,1
mov si,0
pop cx
pop di
add di,160 ;DOS下一行为160字节
loop change
ret
code ends
end start
PS:记录这个题目的代码