汇编显示字符代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档