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

我的博客

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

[2011-08-23 16:24] 第五章 《汇编语言》实验4 [BX] 和 LOOP 的使用

(1) 编程,向内存0:200~0:23F依次传送数据0~63(3FH)
assume cs:code
code segment
                mov ax,0020H
                mov ds,ax
                mov dl,0
                mov bx,0
                mov cx,40h ;这里为什么不是3F呢,因为3F-3F就等于0,loop就停止了。
s:        mov [bx],dl
                inc bx
                inc dl
                loop s
                
                mov ax,4c00H
                int 21h
code ends
end


(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,0
                mov cx,40h ;这里为什么不是3F呢,因为3F-3F就等于0,loop就停止了。
s:        mov [bx],bl ;这里只能用低8位。
                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,0016h ;通过DEBUG跟踪所得,但我想有更简单的方法。
                
s:  mov al,[bx]
                mov es:[bx],al
                inc bx
                loop s
                
                mov ax,4c00h
                int 21h
code ends
end


1、复制的是数据,从CS指令寄存器,到0:200的地址空间。
2、复制的是数据,有22个字节,通过DEBUG跟踪得来,但我想有其它更简单的方法,只是现在不知道,有高手望指点一下。
评论次数(5)  |  浏览次数(628)  |  类型(汇编作业) |  收藏此文  | 

[  chinatree   发表于  2011-08-23 18:18  ]

第一个不用dl试试。
第二个可以不用  mov cx,0016h ,因为当程序加载好cx保存的就是程序的长度。

[  ameteur   发表于  2011-08-25 17:05  ]

我知道,但有一个问题,它是从mov ax,4c00H 前的复制,而不是整个,我可以用 sub cx,5  ,但这里没有SUB啊。

[  ameteur   发表于  2011-08-25 17:07  ]

我试着用mov cx,[5],第一次程序可以成功执行,第二次就不行了。

[  chinatree   发表于  2011-08-25 17:29  ]

哪个题呀?

[  rotapple   发表于  2011-08-25 18:25  ]

;这里为什么不是3F呢,因为3F-3F就等于0,loop就停止了。 
你问了好多这个。
0-63不就是64个数嘛,64个不就是40h嘛。
第2点你现在只能用debug得出,在后面的章节会有便捷的计算方法。所以往后面学吧。加油。

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