shuiyu 发表于 2017-7-9 00:16:18

《零基础入门学习汇编语言》实验四

本帖最后由 shuiyu 于 2018-1-19 23:24 编辑

越努力,越幸运。欢迎大家来看我的笔记{:10_297:} 小白刚学,不对的请各位大佬指正,谢谢{:10_254:}

实验4 和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还记得吗{:10_250:} )
   mov ds,ax   
   mov ax,0020h   
   mov es,ax   
   mov bx,0   
   mov cx, 18h   ;或mov cx, 17h    ;或sub cx,5                        就是先随便给cx赋一个值,看一看一共有多少个内存单元,不就OK了?{:10_279:}
   s:   mov al,   
   mov es:,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,   
   mov es:,al
   inc bx
   loop s
2.然后就是把上面的几条命令都复制到一个内存段中,这个段的段地址为: 0:200

答案:
1.复制的是什么?范围多大?在上面我已经讲了
2.一共占24个字节;怎么知道的?先随便给cx赋一个值,看一看一共有多少个内存单元,一切不就明白了?
因为本题共有18h=24个内存单元,所以一共有24个字节。


谢谢小甲鱼带来的视频教程,感谢!! {:10_303:}


   
本节结束,多谢览阅!
越努力,越幸运。谢谢大家来看我的笔记{:10_297:} 小白刚学,不对的请各位大佬指教,谢谢{:10_254:}

freedomOO 发表于 2021-5-2 11:00:39

谢谢你,对我非常有用,我也是个新手呢
页: [1]
查看完整版本: 《零基础入门学习汇编语言》实验四