. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
主题 : :  请问我的实验9程序哪错了,改了一个下午也没改好,显示老是不正常  [待解决] 回复[ 17次 ]   点击[ 530次 ]  
kingsgg
[帖 主] [ 发表时间:2012-03-17 23:06 ] 
荣誉值:4
信誉值:6
注册日期:2012-02-25 16:01
assume cs:code
data segment
      db 'welcome to masm!'
      dw 3 dup (0)
data ends
code segment
start:
      mov ax,data
      mov ds,ax
      mov ss,ax
      mov sp,16h
      mov ax,0b800h
      mov es,ax
      mov bx,0
      mov bp,0
      mov si,6e0h
      mov cx,16
    s:push cx
      mov al,ds:[bx]
      mov ah,02h
      mov es:[si+bp],ax
      add bp,2
      inc bx
      loop s
    
    s0:pop cx
      push cx
      mov bx,0
      mov bp,0
      mov al,ds:[bx]
      mov ah,24h
      mov es:[si+0a0h+bp],ax
      add bp,2
      inc bx
      loop s0

   s1:pop cx
      mov bx,0
      mov bp,0
      mov al,ds:[bx]
      mov ah,71h
      mov es:[si+140h+bp],ax
      add bp,2
      inc bx
      loop s1

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

编译完后运行,在屏幕中间右边只显示出'welcome'这几个字,然后就是几个小方块,第二行就只有一个绿底的小方块,第三行也是一个白底的小方块.请大大们帮下忙,我到底哪出错了,我的系统是深度技术ghostxp_sp3极速纯净版_2011.12,感激不尽!!
e56004474
[第1楼] [ 回复时间:2012-03-18 10:57 ] 
荣誉值:6
信誉值:1
注册日期:2008-09-04 16:35
s0:pop cx 
      push cx 
      mov bx,0 
      mov bp,0 
      mov al,ds:[bx] 
      mov ah,24h 
      mov es:[si+0a0h+bp],ax 
      add bp,2 
      inc bx 
      loop s0 


循环上有错误,debug,t进去,就发现了。
行,列,   用10进制看得明白些,比如改成 mov si,240D  ;第2行的中间.
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved