. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9的分析和程序  [待解决] 回复[ 1次 ]   点击[ 267次 ]  
ling
[帖 主]   [ 发表时间:2010-11-01 15:47 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-10-22 09:43
assume cs:ling
data segment
        db 'Ling Love Masm!'
color        db 8AH,0ACH,0F9H     ;设置颜色
data ends
ling segment
start:        
        mov ax,data            
        mov ss,ax
        mov bp,offset color
        mov di,0
        
        mov ax,0B800H
        mov ds,ax
        mov si,66                  ;将第一句放于第10行,从第66个字节开始,二句在13行,三句16行
        mov bx,160*9
        
        mov cx,15                  ;一句话中算上空格一共有15个字符,循环15次
s:
        mov al,ss:[di]              
        mov ah,[bp].0
        mov [bx][si],ax
        
        add bx,160*3              ;将bx下移到13行        

        mov al,ss:[di]
        mov ah,[bp].1
        mov [bx][si],ax
        
        add bx,160*3              ;将bx下移到16行        

        mov al,ss:[di]
        mov ah,[bp].2
        mov [bx][si],ax
        
        add si,2
        sub bx,160*6              ;重新将bx移动到10行
        inc di
        
        loop s                    
        
        mov ax,4C00H
        int 21H
ling ends
end start


上述程序中循环s中还可以加子循环 ,可以减少代码长度
经过努力终于写好了...一开始很困惑-_-程序一开始写好后,在win7下cmd中运行屏幕只是一闪 看不到任何结果,后来在虚拟机xp的全屏cmd下运行,显示正常

程序中 我将颜色都设置为闪烁,可是在xp的全屏cmd下 还是不闪-_- #83 不知道为何
masmaster
[第1楼]   [ 回复时间:2010-11-02 22:22 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
大多数汇编教程教程中都建议8086汇编在实模式或者XP下的全屏模式。这样的建议当然有其理由。在保护模式下直接访问硬件,保不齐会出现问题。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved