汇编网首页登录博客注册
q2719833的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
友情链接

[2009-04-17 13:33] 实验四 【bx】和loop的使用

(2)编程,向内存0:200-0:23f依次传送数据0-63(3fh)。程序中只能用9条指令,9条指令中包括“mov ax,4c00h”和“int 21h”。
assume  cs:code
code    segment
    mov ax,0020h
    mov ds,ax
    mov bx,0h
    mov cx,40h
  s:mov ds:[bx],bx
    inc bx
    loop s
    mov ax,4c00h
    int 21h
code ends
end 
(3)下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
补全后的代码:
assume cs:code 
code segment
    mov ax,cs
    mov ds,ax
    mov ax,0020h
    mov es,ax
    mov bx,0
    mov cx,23
  s:mov al,[bx]
    mov es:[bx],al
    inc bx
    loop s
    mov ax,4c00h
    int 21h
code ends
end 
------------------------------------------------------

D:\MASM5>debug text5.exe
-u
0B8F:0000 8CC8          MOV     AX,CS
0B8F:0002 8ED8          MOV     DS,AX
0B8F:0004 B82000        MOV     AX,0020
0B8F:0007 8EC0          MOV     ES,AX
0B8F:0009 BB0000        MOV     BX,0000
0B8F:000C B91700        MOV     CX,0017
0B8F:000F 8A07          MOV     AL,[BX]
0B8F:0011 26            ES:
0B8F:0012 8807          MOV     [BX],AL
0B8F:0014 43            INC     BX
0B8F:0015 E2F8          LOOP    000F
0B8F:0017 B8004C        MOV     AX,4C00
0B8F:001A CD21          INT     21
0B8F:001C 7403          JZ      0021
0B8F:001E E99700        JMP     00B8
-------------------------------------------------------
-d 0020:0 1f
0020:0000  8C C8 8E D8 B8 20 00 8E-C0 BB 00 00 B9 17 00 8A   ..... ..........
0020:0010  07 26 88 07 43 E2 F8 00-00 00 00 00 00 00 00 00   .&..C...........
评论次数(5)  |  浏览次数(969)  |  类型(汇编作业) |  收藏此文  | 

[  tomato   发表于  2009-04-17 15:37  ]

第一题有个小问题。

[  q2719833   发表于  2009-04-17 18:09  ]

是不是这句指令的问题:
 s:mov ds:[bx],bx 
    inc bx 
应该为:
 s:mov ds:[bx],bl 
    inc bl
因为每次存放的内容占一个字节,所以用bl?
但是我用bx也可以得到效果,这有什么讲究么?

[  aten   发表于  2009-04-21 13:31  ]

呵呵,感觉也是编程习惯问题吧!你自己都已经知道了,为什么不再想想呀!
  向内存0:200-0:23f依次传送数据0-63(3fh),而你用BX,传送的是字型数据,最后改写了30F里的内容,而如果30F里存的是代码呢?结果会是怎样?

[  aten   发表于  2009-04-21 13:34  ]

-_-!!我打错字了,最后改写了0:240里的数据!不知道怎么,老打错

[  q2719833   发表于  2009-04-22 12:54  ]

对 ,就是。我没考虑到!还是思考的不够严谨!谢谢aten 和tomato了!

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码