编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串
assume cs:code,ds:data,ss:stack
data segment
;0123456789abcdef
db 'welcome to didi!'
db 00000010B
db 01000100B
db 01110001B
data ends
stack segment stack
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
mov bx,data
mov ds,bx
;放到的数据位置
mov bx,0B800H
mov es,bx
mov si,0 ;字符
mov di,160*10+30*2
mov bx,16
mov dx,0
mov cx,3
s:
push bx
push cx
push si
push di
mov cx,16
mov dh,ds:[bx] ;把属性放到dh
showline: mov dl,ds:[si]
mov es:[di],dx
add di,2
inc si
loop showline
pop di
pop si
pop cx
pop bx
add di,160
inc bx
loop s
mov ax,4C00H
int 21H
code ends
end start
运行效果
这一个题可是折磨我好几天
终于比着敲出来了
视频参考https://www.bilibili.com/video/BV1mt411R7Xv?p=143