鱼C论坛

 找回密码
 立即注册
查看: 1896|回复: 2

关于汇编语言的初级问题,多谢帮忙解惑!

[复制链接]
发表于 2012-6-12 00:00:13 | 显示全部楼层 |阅读模式
1鱼币
如下图所示:CPU读取3号地址的命令为什么是从右边的第四行数字为3的地址读取数据而不是从第三行数字2的地址读取数据?计算机地址编号第一行必须为0有什么原因吗?为什么第一行必须设置为0而读取数据又把第一行地址忽略掉呢?本人身边没有懂汇编的,百度找不到答案,求解答,感激不尽!级别太低上传不了图片,只好压缩成压缩包上传一下了,麻烦哪位能给解答一下,多谢! QQ截图20120611233134.zip (81.31 KB, 下载次数: 8)

最佳答案

查看完整内容

汇编语言中的地址都是从0开始的,16位汇编的寻址范围是64KB(10000h),而地址范围是:0000h~0ffffh,因此截图中的操作就是从地址为3处开始读取指令,而不是第三行,这个千万不能搞错了。计算机地址编号第一行不一定为0,大部分时候的编号为相对编号,因为你不知道这段程序放到内存中的哪一段来执行,因此这些编号实际是相对于程序的起始地址的偏移而言的,即起始地址被编号为0。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-12 00:00:14 | 显示全部楼层
汇编语言中的地址都是从0开始的,16位汇编的寻址范围是64KB(10000h),而地址范围是:0000h~0ffffh,因此截图中的操作就是从地址为3处开始读取指令,而不是第三行,这个千万不能搞错了。计算机地址编号第一行不一定为0,大部分时候的编号为相对编号,因为你不知道这段程序放到内存中的哪一段来执行,因此这些编号实际是相对于程序的起始地址的偏移而言的,即起始地址被编号为0。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-6-12 20:44:07 | 显示全部楼层

不是很懂……不过还是很感谢你的解答,多谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 11:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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