琴长不过时光 发表于 2019-6-11 22:46:47

仅通过变化偏移地址寻址是啥意思

偏移地址16位,变化范围为0-FFFFH,仅用偏移地址来寻址最多可寻64KB个内存单元。

给定段地址为0001H,仅通过变化偏移地址寻址,cpu的寻址范围为(0010H --- 1000F)。
0001H*10H+0 ---- 0001H*10H + FFFFH
0010H      ----1000F

问题1:0010H --- 1000F这个寻址是把16位 8086的内存 分成了一段吗?
问题2 :仅通过变化偏移地址寻址是啥意思?

a97842 发表于 2019-6-12 01:18:25

1.是分成一段的   因为栈有取值范围。

2.请看汇编语言 , 2.7   “段地址×16+偏移地址=物理地址”
我的理解是   
他里面说的你去图书馆

有两种方法,

1.    直接到达。

2 ,先到达一段距离 ,然后再加上一段距离 。

加上限制添加的   纸条的大小

第一种直接到达需要 存放四个数长度的纸条,

第二种 只有存放三位数的纸条    。

先在纸条上写上200(基地址),然后再在纸条上写上826(偏移地址)
    200×10+826= 2826

这里面的纸条就相当于总线长度 。

Seawolf 发表于 2019-6-12 10:21:07

问题1:的确是分成了一段,不过上面的表述有点问题,我觉得应该0010H --- 1000FH这样才对,后面的H是表示16进制,然后前边的0010+FFFF 刚好是1000F。问题2:仅通过变化偏移地址寻址的意思是在一段内存地址内一共有多少种不同的可能性,因为偏移地址是16位的,所以可能性是2的16次方,就是64KB了。

newu 发表于 2019-6-12 16:39:02

小结一下:

在16位的CPU下,寄存器大小是固定的(16bit),但是内存的地址范围比较大,那么只能通过两个寄存器来确定一个内存的地址。

所以就有了,段+偏移的方式。

琴长不过时光 发表于 2019-6-18 10:37:27

Seawolf 发表于 2019-6-12 10:21
问题1:的确是分成了一段,不过上面的表述有点问题,我觉得应该0010H --- 1000FH这样才对,后面的H是表示16 ...

你的答案是最佳的 可惜我给别人了

Seawolf 发表于 2019-6-18 12:44:40

琴长不过时光 发表于 2019-6-18 10:37
你的答案是最佳的 可惜我给别人了

没事哦
页: [1]
查看完整版本: 仅通过变化偏移地址寻址是啥意思