汇编显示字符代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;名称:show_str
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符
;参数:(dh)=行号(0~24),(dl)=列号(0~79)
; (cl)=颜色,ds:si指向字符串首地址
;By Odi
assume cs:code
data segment;-----------------------------
db'Welcome to masm!',0; 显示的字符串,以0结束
data ends;--------------------------------
code segment
start:
mov dh,8;行号=8
mov dl,3;列号=3
mov ax,data
mov ds,ax
mov si,0;字符串首地址(ds:[si])
mov cl,0c2h;颜色红底绿字闪烁--------------------
; 7 6 5 4 3 2 1 0 (B)
; BL R G B I R G B
; --- ------ - -------
; 闪烁 背景 高亮 前景
; 1 1 0 0 0 0 1 0 (0c2h)
;---------------------------------------
call show_str ;调用子程序
mov ax,4c00h
int 21h
show_str:;------------------子程序---------------
mov ax,ds
mov es,ax;将ds转移到es,ds将用于对显存的操作
add dl,dl
mov bl,dl
mov bh,0;计算列起始变量
mov al,0a0h
mov ah,0
mul dh
mov di,ax;计算行起始变量
mov ax,0b800h;显存地址
mov ds,ax
mov dx,cx;由于jcxz需要对cx操作,所以将cx传到dx进行使用
s0:
mov ch,0
mov cl,es:[si]
jcxz ok;当遍历字符串直到0,jmp到ok
mov ah,es:[si]
mov [di][bx-2],ah
inc bx
inc si
mov [di][bx-2],dl;显示缓冲区中,偶地址存放字符,奇地址存放字符属性
inc bx
jmp short s0
ok:
ret;结束子程序调用
code ends
end start