. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验九:代码少许,注释4行  [待解决] 回复[ 2次 ]   点击[ 210次 ]  
zeek
[帖 主]   [ 发表时间:2012-07-01 19:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-06-30 12:06
assume cs: codesg;, ds:datasg
datasg segment
                db        'welcome to masm!'
datasg ends
codesg segment
start:        mov ax, datasg
                mov ds, ax
                mov ax, 0b800h
                mov es, ax
                
                mov bx, 0
                mov si, bx
                mov di, bx
                mov bp, 1760                                ;0b800:1760 第12行的偏移量
                mov cx, 16
        sa:        mov al, ds:[bx]                                ;复制3行welcome to masm到屏幕上
                mov es:[bp].66[di], al                ;66为welcome开始的33列的地址(33*2)
                mov es:[bp+160].66[di], al
                mov es:[bp+320].66[di], al
                inc bx
                add di, 2
                loop sa
                
                mov di, 0
                mov cx, 16
        sc:        mov byte ptr es:[bp].66[di + 1], 2h                        ;填充颜色
                mov byte ptr es:[bp + 160].66[di + 1], 24h
                mov byte ptr es:[bp + 320].66[di + 1], 71h
                add di, 2
                loop sc
                
                mov ax, 4c00h
                int 21h
codesg ends
end        start
zeek
[第1楼]   [ 回复时间:2012-07-01 23:30 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-06-30 12:06
assume cs: codesg;, ds:datasg 
datasg segment 
                db        'welcome to masm!' 
datasg ends 
codesg segment 
start:        mov ax, datasg 
                mov ds, ax 
                mov ax, 0b800h 
                mov es, ax 
                 
                mov bx, 0 
                mov si, bx 
                mov di, bx 
                mov bp, 1760                                ;0b800:1760 第12行的偏移量 
                mov cx, 16 
        sa:        mov al, ds:[bx]                                ;复制3行welcome to masm到屏幕上 
                mov es:[bp].66[di], al                ;66为welcome开始的33列的地址(33*2) 
                mov es:[bp+160].66[di], al 
                mov es:[bp+320].66[di], al 
                inc bx 
                add di, 2 
                loop sa 
                 
                mov di, 1
                mov cx, 16 
        sc:        mov byte ptr es:[bp].66[di], 2h                        ;填充颜色 
                mov byte ptr es:[bp + 160].66[di], 24h 
                mov byte ptr es:[bp + 320].66[di], 71h 
                add di, 2 
                loop sc 
                 
                mov ax, 4c00h 
                int 21h 
codesg ends 
end        start
fpamc
[第2楼]   [ 回复时间:2012-07-02 07:16 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:4
注册日期:2012-01-01 16:36
嗯嗯,不错。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved