. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9 小小问题望指点  [待解决] 回复[ 2次 ]   点击[ 282次 ]  
kingmoon
[帖 主]   [ 发表时间:2010-07-23 17:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-16 17:50
DATAS SEGMENT
    db 'welcome to masm!'
    db 01111010B ;绿色 0016H
    db 00100100B ;绿底红字 0017H
    db 01110001B ;白底蓝色 0018H
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    
    ;11 30-46 B8000H 06E0-077F
    ;12 30-46        0780-0F9F
    ;13 30-46        0FA0-103F
    
    mov ax,0B800H
    mov es,ax
    mov cx,3
    mov si,06E0H
    mov bp,0010H  ;属性在ds偏移地址
    s0: ;第一层3个循环代表3行
            push cx    
            mov cx,16
            mov di,0
            add si,64
            
            s1:  ;第二层16个循环加入每个字符以及属性
            mov ax,ds:[di]
            mov es:[si],ax  ;加入字符
            mov ax,ds:[bp]
            mov es:[si+1],ax  ;加入属性
            add di,1
            add si,2
            loop s1
            
            add bp,1
            add si,64
            pop cx
    loop s0
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

一看我代码可能大家都知道我是个学C的老手了我不打喜欢汇编的风格...所以循环都差不多安照C来写
怎么会在显示后前两行多了两个小字符呢?
还有几乎没法做到白底.因为RGB=000的时候是黑色的
RGB=111的时候是灰色的 
至于代码个人感觉还可以.
请各位指点
tinyparticle
[第1楼]   [ 回复时间:2010-07-23 20:36 ]   [引用]   [回复]   [ top ] 
荣誉值:188
信誉值:4
注册日期:2009-07-05 19:26
怎么会在显示后前两行多了两个小字符呢? 
==================================================
            mov ax,ds:[di] 
            mov es:[si],ax  ;加入字符 
            mov ax,ds:[bp] 
            mov es:[si+1],ax  ;加入属性 


这里要考虑字节数,修改成下面这样,你调试下看看

            mov al,ds:[di] 
            mov es:[si],al  ;加入字符 
            
            mov ah,ds:[bp] 
            mov es:[si+1],ah  ;加入属性 


至于颜色嘛
绿色 2H 
绿底红字 14H 
白底蓝色 71H
kingmoon
[第2楼]   [ 回复时间:2010-07-25 13:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-16 17:50
谢谢很好原来是没注意字节数的问题
至于颜色按照你的那样还那样....呜呜
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved