;———————————————————————–
; 在屏幕中央显示Hello World!—— From Hankcs,2010
;———————————————————————–
assume cs:code,ds:data
data segment
db ‘Hello World!’ ;定义要显示的字符串(共12字节)
data ends
code segment
start:
mov ax,data
mov ds,ax ;ds绑定数据段
mov ax,0b872h ;算出屏幕第12行中间的显存的段起始位置放入ax中
mov es,ax ;此时es为屏幕第12行中间的显存的段起始位置
mov si,0 ;初始化寄存器,分别用来控制奇偶地址
mov di,0
mov cx,0ch ;第一次循环为0ch次
s1: mov al,ds:[si] ;读取单个字符
mov es:[di],al ;写到显存里面
inc si
add di,2
loop s1 ;此循环实现偶地址中存放字符
mov si,1 ;si的值设为1,从而为在显存奇地址中存放字符的颜色属性做准备
mov al,0ah ;设置颜色属性为绿色高亮
mov cx,0ch ;第二个循环也为0ch(12)次
s2: mov es:[si],al
add si,2
loop s2 ;此循环实现奇地址中存放字符的颜色属性
;程序暂停,等待输入
MOV AH,01H
INT 21H
mov ax,4c00h
int 21h
code ends
end start