汇编——在屏幕中间显示不同颜色的字符串

编程:参考教材实验9,在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串’welcome to masm’。
一、分析
8086CPU中,80x25彩色字符模式显示缓冲区的结构:内存地址空间中,B8000H~BFFFFH共32kb的空间,为80x25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。显示器可以显示25行,每行80个字符,每个字符可以有256种属性。
显示缓冲区分8页,一般情况下,显示第0页的内容。也就是通常情况下,B8000H~B8F9FH中的4000个字节的内容将出现在显示器上。要出现在中间,即出现在11、12、13行,开始的对应的地址分别为6E0H、6E0H+0A0H、6E0H+0A0H+0A0H。 而每列160个字节,要是显示在中间,则字符串第12行首地址为710H。接下来,就要把这些字符显示在显示器了。对了,这里应该注意的一个地方是,在显示缓冲区,偶地址存放字符,奇地址存放字符的颜色属性,所以在寻找列的中间位置的时候要考虑到。160-16*2=96。96/2=48.
二、代码:
assume cs:code
data segment
db ‘Welcome to masm!’
data ends
code segment
start: mov ax,data
mov es,ax
mov ax,0b800h;基地址
mov ds,ax
mov bx,0710h;设置字符串首地址

    mov cx,16;总共16个字符,所以循环16次
    mov si,0
    s:mov ax,es:[si];取出字符
       
  • 11
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值