吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1297|回复: 8
收起左侧

[已解决] 关于王爽老师汇编一书第5章实验4第二小题的疑惑

[复制链接]
初出江湖的Ryan 发表于 2020-8-11 23:32
本帖最后由 初出江湖的Ryan 于 2020-8-12 00:35 编辑

先上代码
[Asm] 纯文本查看 复制代码
assume cs:code
code segment

   mov ax,cs
   mov ds,ax

   mov ax,0020h
   mov es,ax                              ;  这里将es设置成0020h
   mov  bx,0                               ;  这里将bx设置成0
   mov  cx,0017h

   s:mov al,[bx]                         ; 到这里为止,bx的值还是0
    mov es:[bx],al                       ; 这里的意思, 是不是段地址:偏移地址? 这里不明白
    inc bx
    loop s

    mov ax,4c00h
    int 21h
code ends
end



实验的目的是要将 “mov ax,4c00h” 之前的指令复制到内存 0:200处。 需要填空的两个地方都没什么问题。
问题是,循环中 “mov es:[bx], al” ,这条指令不明白,这样的写法应该是 段地址:偏移地址  吧?  那些,段地址es的值 是0020h, 偏移地址bx的值是0 ,根据: 段地址*16+偏移地址,得出的地址应该是 0020:0 这个地址才对吧?
程序 运行起来,0020:0 这个地址,也是会复制到指令过去的,但是为什么0:200处也会发生改变的?

菜鸟上路,请各位大神不吝赐教。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Peach_WYY 发表于 2020-8-12 00:08
同问!求指教
15048048021 发表于 2020-8-12 00:11
"段地址es的值 是0020h, 偏移地址bx的值是0 ,根据: 段地址*16+偏移地址,得出的地址应该是 0020:0 这个地址才对吧?".
得出的地址应为 0200h:0

免费评分

参与人数 1吾爱币 +1 收起 理由
没有细胞的人 + 1 得出的地址的确是0020:0

查看全部评分

没有细胞的人 发表于 2020-8-12 00:31

你看看题目嘛
第二小问是,让你自己编程,只能用9条指令,不是让你把第三问的题目补上拿来做第二问
我说我怎么看了半天,感觉传不到0:200里面去。。。
 楼主| 初出江湖的Ryan 发表于 2020-8-12 00:35

刚刚想起来了,第三版的书本,24页有说明的,不同的段地址和偏移地址,可以表示同一个物理地址的。
比如上题所示,复制到内存地址0:200处。
那么可以转换成物理地址 : 00200H ,
根据段地址*16 + 偏移地址 这个公式,物理地址00200H,可以用以下方式表示
0020:0   ,即段地址为0020,偏移地址为0,即为实验中所提到地址。
0000:200,即段地址为0,偏移地址为200,即为实验题目中所提到的地址

所以得出 0:200 跟 20:0 两个地址,指的是同一个物理地址。二者任选其一都可以,结贴。
 楼主| 初出江湖的Ryan 发表于 2020-8-12 00:36
没有细胞的人 发表于 2020-8-12 00:31
你看看题目嘛
第二小问是,让你自己编程,只能用9条指令,不是让你把第三问的题 ...

不好意思,我表达得不好。是最后一道题,要复制指令的那道题。有两个填空的那道题,我已经得到答案了,在5楼。谢谢大佬热心回答!!!!
 楼主| 初出江湖的Ryan 发表于 2020-8-12 00:39
15048048021 发表于 2020-8-12 00:11
"段地址es的值 是0020h, 偏移地址bx的值是0 ,根据: 段地址*16+偏移地址,得出的地址应该是 0020:0 这个 ...

你这不对吧,ax的值是0020h,mov到es的时候,es还是0020h。所以段地址是0020h才对吧?0020:0才对吧,要用段地址*16+偏移地址的形式表示 ,才是00200h吧?

另外,我已经知道答案了,在5楼。谢谢大佬热心回答!!!!
Didor 发表于 2020-8-12 06:08
汇编真的难啊,大一开始学的时候真的一脸懵逼
 楼主| 初出江湖的Ryan 发表于 2020-8-12 12:35
Didor 发表于 2020-8-12 06:08
汇编真的难啊,大一开始学的时候真的一脸懵逼

可能接触的还不够深入,感觉还行,有点C语言基础,看王爽老师的书自学起来,感觉也还算可以。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 13:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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