;显示 红底蓝字的 Welcome To Masm!
; 红底蓝字编码 01001001 = 49
; 补充知识: 显存地址从 B8000H ~ BFFFFH 共32KB,分为八页,每页约4KB(4000Byte),一般显示器显示第零页的内容;
; 每页有25行80列,每列有160字节,显示一个字符需要两个字节,一个字符的ASCII码,另一个为字符的显示格式;
;一般奇数地址为字符格式,偶数为字符ASCII码。
assume cs:code,ds:data,ss:stack
code segment
start:
mov ax,stack
mov ss,ax
mov sp,6
mov ax,data
mov ds,ax ;以上是设置相关寄存器
mov ax,0b800h
mov es,ax ;设置显存段地址
mov bx,0
mov si,0
mov cx,16 ;相关寄存器初始化,设置循环次数
e:
mov ax,ds:[bx] ;取出字符数据
mov es:[7c0h + si],ax ;将字符数据写入显存地址
mov ax,49h
mov es:[7c0h + si + 1],ax ;设置字符显示格式
add si,2 ;定位下一个字符格式地址,奇数地址为字符格式
inc bx ;定位下一个字符地址
loop e
mov ax,4c00h ;程序结束
int 21h
code ends
stack segment ;定义栈段
dw 3 dup(0)
stack ends
data segment ;定义数据段
db 'Welcome To Masm!'
data ends
end start
汇编学习历程(显示Welcome To Masm!)
最新推荐文章于 2024-06-28 17:15:57 发布