怪味豆 发表于 2012-6-12 00:00:13

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

如下图所示:CPU读取3号地址的命令为什么是从右边的第四行数字为3的地址读取数据而不是从第三行数字2的地址读取数据?计算机地址编号第一行必须为0有什么原因吗?为什么第一行必须设置为0而读取数据又把第一行地址忽略掉呢?本人身边没有懂汇编的,百度找不到答案,求解答,感激不尽!级别太低上传不了图片,只好压缩成压缩包上传一下了,麻烦哪位能给解答一下,多谢!

fujian810 发表于 2012-6-12 00:00:14

汇编语言中的地址都是从0开始的,16位汇编的寻址范围是64KB(10000h),而地址范围是:0000h~0ffffh,因此截图中的操作就是从地址为3处开始读取指令,而不是第三行,这个千万不能搞错了。计算机地址编号第一行不一定为0,大部分时候的编号为相对编号,因为你不知道这段程序放到内存中的哪一段来执行,因此这些编号实际是相对于程序的起始地址的偏移而言的,即起始地址被编号为0。

怪味豆 发表于 2012-6-12 20:44:07

fujian810 发表于 2012-6-12 00:34 static/image/common/back.gif
汇编语言中的地址都是从0开始的,16位汇编的寻址范围是64KB(10000h),而地址范围是:0000h~0ffffh,因此截图 ...

不是很懂……不过还是很感谢你的解答,多谢!
页: [1]
查看完整版本: 关于汇编语言的初级问题,多谢帮忙解惑!