鱼C论坛

 找回密码
 立即注册
查看: 3566|回复: 4

实验4有2个小问题需要大家的指教

[复制链接]
发表于 2011-6-12 17:58:59 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 开机中。。。 于 2011-6-17 15:32 编辑

我在这里要的是思路并不是答案,或者哪位大牛看我的答案后觉得我之前哪个知识点掌握的不好可以指正一下,谢谢


第一题我的答案:
assume cs:abc
abc segment

  mov ax,0
  mov ds,ax
  mov bx,200h
  mov dx,0
  mov cx,64
  
  s: mov dh,0
     mov [bx],dl
  inc bx
  inc dx
  loop s
  
  mov ax,4c00h
  int 21h
  
abc ends
end

根据第一题的答案看第二题貌似不知道从何下手了,书上的要求只能用7条指令,我苦思半天不得其解

首先我觉得
   mov ax,0
  mov ds,ax
  mov bx,200h
  
  mov cx,64
  s:mov [bx],dl
    loop s

这6条应该是少不了吧,剩下那一条如何写呢



第三题,可能我还是不能理解作者的用意,
1,复制的是什么
这个问题问的不知所云,应该是地址对应的数据吧



曾经有此困惑的朋友麻烦帮分析一下,谢谢

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-13 10:20:41 | 显示全部楼层
第二题:
     mov ax,0020h

     mov ds,ax

     mov bx,0

     mov cx,40h

s:   mov [bx],bx

     inc bl

     loop s


第三题:
assume cs:code

code segment

     mov ax,code  ;code为所填写的数据

     mov ds,ax

     mov ax,0020h

     mov es,ax

 

     mov bx,0

     mov cx,18h   ;18h为所填写的数据

s:   mov al,[bx]

     mov es:[bx],al

     inc bx

     loop s

 

     mov ax,4c00h

     int 21h

code ends

end
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-6-13 12:28:10 | 显示全部楼层
本帖最后由 开机中。。。 于 2011-6-13 12:30 编辑


高,实在是高  看来还是基础不牢靠

物理地址=段地址*16+偏移地址

也就是说不管怎样只要物理地址结果是一样的,那么段地址和偏移地址怎么组合都可以   

最绝的的竟然可以只用一个变量就精简了几行指令,强悍


就是那个mov cx,40h还不是很清楚,需要自己在摸索一下


学习了,谢谢啦

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-6-13 12:33:21 | 显示全部楼层
额 ,40h原来是十六进制的,转换为十进制就是64,这里写成十六进制的40h有什么用意?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-6-13 12:50:10 | 显示全部楼层
第三题,真正的受教了,原来一个标号也可以作为一个段地址,刚看到mov ax,code  我以为是看花眼了,又重新翻书到第三章查找,貌似mov 寄存器,寄存器(或数据)(或内存单元)怎么会出现一个变量名呢,后来才发现code是标号,然后又翻书到第四章查找,书上的的确确写的有‘最为一个段的名称,这个段的名称最终将被编译,连接程序处理为一个段的段地址’,受教了,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-18 22:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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