. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9 根据材料编程(希望大家共同完善)  [待解决] 回复[ 3次 ]   点击[ 330次 ]  
tims
[帖 主]   [ 发表时间:2010-08-29 11:18 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:5
注册日期:2010-06-14 11:07
俺是汇编初学者、、、刚看到这个题目时感觉有点蒙、、、经过几个小时的努力终于实现了此功能、、、

至于代码规范、优化之类的、、俺不是很懂、、希望大家给点意见、、

//////////////////////////////////////////////////////////////////////////////////////

assume cs:code,ds:data

data segment

        db 'Welcome to asm !'
        db 02h,24h,71h

data ends

code segment

 start: mov ax,data
        mov ds,ax
        mov ax,0b872h        ;计算出显示缓冲区12行的中间地址
        mov es,ax

        xor ax,ax
        mov si,ax
        mov di,ax
        
        mov cx,10h      
     s: mov al,[si]

        mov ah,ds:[10h]      ;此为显示绿色字
        mov es:[di],ax

        mov ah,ds:[11h]      ;此为显示绿底红色字
        mov es:[160+di],ax   ;di+160为di的下一行

        mov ah,ds:[12h]      ;此为显示白底蓝色字
        mov es:[320+di],ax   ;di+320为di的下两行

        inc si
        add di,2
        loop s

        mov ax,4c00h
        int 21h

code ends

end start
lulua00
[第1楼]   [ 回复时间:2010-08-30 11:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-29 11:35
LZ让我有点纠结,  xor ax,ax 不就是把ax置0的吗,干嘛不直接点 mov ax,0  让我觉得你有点蛋疼
tims
[第2楼]   [ 回复时间:2010-08-30 19:37 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:5
注册日期:2010-06-14 11:07
汗!

貌似 xor 速度快……
masmaster
[第3楼]   [ 回复时间:2010-08-30 22:22 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
很好
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved