在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 welcome to masm!
。
这里的屏幕指的是,显卡文本模式下的屏幕,屏幕尺寸 80x25,可以显示彩色、高亮、闪烁的ASCII字符。
文本模式下一个字符由2个字节组成,即 ASCII+属性 = 2字节。属性字节的格式:
内存地址空间中,b8000h~bffffh 共32KB,是80x25彩色字符模式的显示缓冲区。
显示缓冲区分位8页,每页4KB,每页80x25=2000个字符,2000x2字节=4KB,共8页x4KB=32KB。
绿字属性字节:00000010b
绿底红色:00100100b
白底蓝色:01110001b
代码:
; 屏幕中间显示三行彩色字
; sy9.asm
assume cs:codedata segmentdb 'welcome to masm!' ; 16字节db 00000010b ; 绿字db 00100100b ; 绿底红字db 01110001b ; 白底蓝字db 11,12,13,64 ; 三行的位置 (25-3)/2=11 每行开始位置 (80-16)/2*2=64
data endsstack segmentdw 8 dup (0)
stack endscode segment
start:mov ax,datamov ds,axmov ax,stackmov ss,axmov sp,16mov cx,3
row:mov dx,cxmov si,3sub si,cxmov ch,0mov cl,19[si]mov bp,0
col:add bp,160loop colmov ah,0mov al,ds:[22]add bp,ax ; 每行字符起始位置mov si,3sub si,dxmov ah,16[si]mov bx,0mov cx,16
fill:mov al,[bx]push dsmov si,0b800hmov ds,simov ds:[bp],axpop dsinc bxadd bp,2loop fillmov cx,dxloop rowmov ax,4c00hint 21h
code ends
end start
masm sy9.asm;
link sy9.obj;
本文发布于:2024-02-01 22:13:33,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170679681239759.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |