红烧甲鱼 发表于 2018-9-17 21:08:33

实验4 [bx]和loop的使用

本帖最后由 红烧甲鱼 于 2018-9-17 21:27 编辑

关于实验4的第三题,看了这个题后一脸懵逼,虽然找到了答案但是也是看得云山雾绕的,我想彻底搞清来龙去脉,还请个位大神仔细帮我解释一下,万分感谢

下面的程序的功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
assume cs:code
code segment
mov ax,____
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,____
s:mov al,
mov es:,al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
提示:
(1)复制的是什么?从哪里到哪里?
(2)复制的是什么?有多少个字节?你如何知道要复制的字节的数量?

claws0n 发表于 2018-9-17 21:09:52

发代码

红烧甲鱼 发表于 2018-9-17 21:15:54

下面的程序的功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
assume cs:code
code segment
mov ax,____
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,____
s:mov al,
mov es:,al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
提示:
(1)复制的是什么?从哪里到哪里?
(2)复制的是什么?有多少个字节?你如何知道要复制的字节的数量?

红烧甲鱼 发表于 2018-9-17 21:20:52

claws0n 发表于 2018-9-17 21:09
发代码

可否加个微信好友呢,我太菜了需要个亦师亦友的人带带,非常感谢

claws0n 发表于 2018-9-17 21:35:28

红烧甲鱼 发表于 2018-9-17 21:15
下面的程序的功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
...

没做过,汇编刚接触,答案是啥? 0 和 200?

红烧甲鱼 发表于 2018-9-17 21:40:56

都不是

红烧甲鱼 发表于 2018-9-17 21:41:37

答案里好多内容看不懂

claws0n 发表于 2018-9-17 21:51:45

红烧甲鱼 发表于 2018-9-17 21:41
答案里好多内容看不懂

可发答案?一起思考一下

红烧甲鱼 发表于 2018-9-17 22:02:13

汇编板块列表里有,就叫做实验四

erh 发表于 2018-9-18 10:14:22

第一个空是cs吧
第二个空应该是,mov ax,____
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,____
s:mov al,
mov es:,al
inc bx
loop s
编译成机器码后的字节数吧.具体怎么算要查指令表

红烧甲鱼 发表于 2018-9-18 10:19:20

erh 发表于 2018-9-18 10:14
第一个空是cs吧
第二个空应该是,mov ax,____
mov ds,ax


第一个是CODE,这个题我看着一脸懵,完全不知道从哪里下手,昨晚都没睡好觉,做梦都在想这个题

erh 发表于 2018-9-19 10:16:35

红烧甲鱼 发表于 2018-9-18 10:19
第一个是CODE,这个题我看着一脸懵,完全不知道从哪里下手,昨晚都没睡好觉,做梦都在想这个题

code 是不是跟cs一样啊?
把ds对准代码段,然后复制数据的源地址ds:,目标地址es:

第二个空是什么啊?{:5_109:}

aaa小甲鱼 发表于 2018-9-19 10:23:02

第一空:cs或者code;第二空:17h。
(1)复制的是什么?从哪里到哪里?
在内存中的指令实际上是以二进制数的形式存放的,因此复制的是数据,从cs:0000-cs:0017h复制到0000:0200-0000:0217
(2)该程序一共多少个字节?你是如何知道要复制的字节的数量?
该程序一共有28个字节。先任意给定cx一个值,用A命令将”mov ax,4c00h”之前的指令写入到内存中,loop指令的下一条指令的地址的值,即为cx应该赋予的值。

红烧甲鱼 发表于 2018-9-19 15:32:40

aaa小甲鱼 发表于 2018-9-19 10:23
第一空:cs或者code;第二空:17h。
(1)复制的是什么?从哪里到哪里?
在内存中的指令实际上是以二进制 ...

看着还是有点迷糊,题目mov ax,4c00h以前的指令应该指的就是8条以mov开头的吧,其余的是伪指令
页: [1]
查看完整版本: 实验4 [bx]和loop的使用