. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
主题 : :  【实验九详解】  [已解决] 回复[ 6次 ]   点击[ 1316次 ]  
masmaster
[帖 主] [ 发表时间:2010-07-25 12:44 ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
这个实现方法是用一个循环逐列显示字符。
;--------------------------------------------------------------------------------------
assume  cs:code
data    segment
        db      'Welcome to Masm!'
data    ends
code    segment
start:
        mov ax,data              ;装入DS
        mov ds,ax
        mov ax,0b800h            ;指定显示区域DS
        mov es,ax
        mov bx,0                 ;首地址
        mov bp,60                ;列的初始值
        mov cx,16                ;16次循环
s:      mov si,12*160            ;行的初始值
        mov ah,72h               ;指定颜色
        mov al,[bx]              ;装入ASCII字符
        mov es:[si+bp],ax        ;把白底绿字装入指定位置
        add si,160               ;指向下一行
        mov ah,24h               ;指定颜色
        mov al,[bx]              ;装入ASCII字符
        mov es:[si+bp],ax        ;将绿底红字装入指定位置
        add si,160               ;指向下一行
        mov ah,17h               ;指定颜色
        mov al,[bx]              ;装入ASCII字符
        mov es:[si+bp],ax        ;把白底蓝字装入指定位置
        inc bx                   ;指向下一个字符
        add bp,2                 ;指向下一列位置
        loop s
        mov ah,4ch
        int 21h
code    ends
end     start
;--------------------------------------------------------------------------------------
masmaster
[第3楼] [ 回复时间:2010-07-25 14:56 ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
因为一行80个字符160个字节嘛
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved