. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
主题 : :  关于实验9  [已解决] 回复[ 4次 ]   点击[ 1051次 ]  
byzero
[帖 主] [ 发表时间:2010-07-28 23:39 ] 
荣誉值:2
信誉值:0
注册日期:2010-07-04 09:31
assume cs:code,ds:data
data segment
char db 'welcome to masm!'
color db 02h,24h,71h
data ends

code segment
  start:mov ax,data
        mov ds,ax
        mov bx,0
        mov di,offset color
        mov ax,0B86EH
        mov es,ax
        mov si,48H
        mov cx,16
  char1:mov al,ds:[bx]
        mov es:[si],al
        mov es:[si+0A0H],al
        mov es:[si+140H],al
        mov al,ds:[di]
        inc si                    ;和下面一个的区别
        mov es:[si],al            ;下面一个此处为si+1
        mov al,ds:[di+1]
        mov es:[si+0A0H],al       ;同样【si+0a1h】
        mov al,ds:[di+2]
        mov es:[si+140H],al       ;【si+141h】
        inc bx
        add si,2
        loop char1

mov ax,4c00h
int 21h
code ends
end start

可是编译后发现不行,然后用下面这种方法又可以
assume cs:code,ds:data
data segment
char db 'welcome to masm!'
color db 02h,24h,71h
data ends

code segment
  start:mov ax,data
        mov ds,ax
        mov bx,0
        mov di,offset color
        mov ax,0B86EH
        mov es,ax
        mov si,48H
        mov cx,16
  char1:mov al,ds:[bx]
        mov es:[si],al
        mov es:[si+0A0H],al
        mov es:[si+140H],al
        mov al,ds:[di]
        mov es:[si+1],al
        mov al,ds:[di+1]
        mov es:[si+0A1H],al
        mov al,ds:[di+2]
        mov es:[si+141H],al
        inc bx
        add si,2
        loop char1

mov ax,4c00h
int 21h
code ends
end start


求解
byzero
[第4楼] [ 回复时间:2010-07-30 12:54 ] 
荣誉值:2
信誉值:0
注册日期:2010-07-04 09:31
是我看错了
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved