鱼C论坛

 找回密码
 立即注册
查看: 2777|回复: 13

[已解决]实验4 [bx]和loop的使用

[复制链接]
发表于 2018-9-17 21:08:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 红烧甲鱼 于 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,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
提示:
(1)复制的是什么?从哪里到哪里?
(2)复制的是什么?有多少个字节?你如何知道要复制的字节的数量?
最佳答案
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应该赋予的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-17 21:09:52 From FishC Mobile | 显示全部楼层
发代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
提示:
(1)复制的是什么?从哪里到哪里?
(2)复制的是什么?有多少个字节?你如何知道要复制的字节的数量?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-17 21:20:52 | 显示全部楼层

可否加个微信好友呢,我太菜了需要个亦师亦友的人带带,非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

没做过,汇编刚接触,答案是啥? 0 和 200?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-17 21:40:56 From FishC Mobile | 显示全部楼层
都不是
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-17 21:41:37 From FishC Mobile | 显示全部楼层
答案里好多内容看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-17 21:51:45 From FishC Mobile | 显示全部楼层
红烧甲鱼 发表于 2018-9-17 21:41
答案里好多内容看不懂

可发答案?一起思考一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-17 22:02:13 From FishC Mobile | 显示全部楼层
汇编板块列表里有,就叫做实验四
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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,[bx]
mov es:[bx],al
inc bx
loop s
编译成机器码后的字节数吧.具体怎么算要查指令表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-18 10:19:20 | 显示全部楼层
erh 发表于 2018-9-18 10:14
第一个空是cs吧
第二个空应该是,mov ax,____
mov ds,ax

第一个是CODE,这个题我看着一脸懵,完全不知道从哪里下手,昨晚都没睡好觉,做梦都在想这个题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

第二个空是什么啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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应该赋予的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

看着还是有点迷糊,题目mov ax,4c00h以前的指令应该指的就是8条以mov开头的吧,其余的是伪指令
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 15:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表