|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 shuiyu 于 2018-1-19 23:24 编辑
越努力,越幸运。欢迎大家来看我的笔记 小白刚学,不对的请各位大佬指正,谢谢
实验4 [bx]和loop的使用
(1) 编程,向内存0:200~0:23f依次传递数据0~63(3fh)。
经检查,本题的CX写错了,应该改为 mov cx,64
(2)编程,向内存0:200~0:23f依次传递数据0~63(3fh),程序中只能使用9条指令,9条指中包括“mov ax,4c00h”和“int 21h”。
经检查,本题的CX写错了,应该改为 mov cx,64
(3)下面的程序功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
解:
assume cs:code
code segment
mov ax, code ;或mov ax, cs 就是让段地址指向存储源程序的代码
(前256 个字节中存放的是PSP还记得吗 )
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx, 18h ;或mov cx, 17h ;或sub cx,5 就是先随便给cx赋一个值,看一看一共有多少个内存单元,不就OK了?
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
1.先读题,将“mov ax,4c00h"之前的指令复制:其实就是复制这几条命令
mov ax, code ;或mov ax, cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx, 18h ;或mov cx, 17h ;或sub cx,5
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
2.然后就是把上面的几条命令都复制到一个内存段中,这个段的段地址为: 0:200
答案:
1.复制的是什么?范围多大?在上面我已经讲了
2.一共占24个字节;怎么知道的?先随便给cx赋一个值,看一看一共有多少个内存单元,一切不就明白了?
因为本题共有18h=24个内存单元,所以一共有24个字节。
谢谢小甲鱼带来的视频教程,感谢!!
本节结束,多谢览阅!
越努力,越幸运。谢谢大家来看我的笔记 小白刚学,不对的请各位大佬指教,谢谢 |
评分
-
查看全部评分
|