王爽8086汇编的问题,请指教

8086CPU的问题,该CPU是16位的,段地址16位,偏移地址16位,物理地址通过地址加法器后变20位,到底这个寻址是20位的还是16位的???

问:给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为——— 到———。
答:起始地址是10H,寻址能力按2的16次方算的话,那么终止地址是10H+FFFFH,结果是1000FH。

问:有一数据存放在内存20000H单元中,先给定段地址为SA,若想用偏移地址寻到此单元,则SA应该满足的条件是:最小为——,最大为——。
答:假设EA最小为0H,那么SA就是2000H,假设EA最大为FFFFH,那么SA=20000H-FFFFH,结果就是10001H,退一位就是1000H。

请各位大小指点,点评一下对错,并帮我分析一下为什么错,谢谢了

第1个回答  2014-02-15
8086CPU的问题,该CPU是16位的,段地址16位,偏移地址16位,
物理地址通过地址加法器后变20位,
到底这个寻址是20位的还是16位的???

--什么是《这个寻址》?

========================

问:给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为——— 到———。

起始地址: 00010H + 0000H = 00010H
终止地址: 00010H + FFFFH = 1000FH

========================
问:有一数据存放在内存20000H单元中,先给定段地址为SA,
若想用偏移地址寻到此单元,则SA应该满足的条件是:最小为——,最大为——。

已知:物理 = 段左移四位 + 偏移

显然,物理低四位 = 偏移低四位

当,物理 = 20000H,偏移低四位,也就是0。

----

因为:物理 = 段左移四位 + 偏移

显然,在偏移为最大时(FFF0),段,即为最小。

于是:段(最小)=(20000H - FFF0H)右移四位 = 1001H。

----

同理:段(最大)=(20000H - 0000H)右移四位 = 2000H。本回答被网友采纳
第2个回答  2014-02-15
1000h*10h+FFFFH=1FFFFH
1000H加上最大的偏移地址也不可能找到物理2000H,所以最小段地址得是1001H,也就是你算的10001H剩下的小数不能省略,要进一位!本回答被提问者采纳

王爽8086汇编的问题,请指教
8086CPU的问题,该CPU是16位的,段地址16位,偏移地址16位,物理地址通过地址加法器后变20位,到底这个寻址是20位的还是16位的???--什么是《这个寻址》?=== 问:给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为——— 到———。起始地址: 00010H + 0000H = 00010H 终止...

8086汇编,如何判断OF的值(王爽汇编检测点11.2)
首先第一点,10h并没有,90h并没有越界限,你可以看下附页补码部分,90h=144,然后al部分8位,最大值ffh=255,如果是无符号的界限为0-255,如果有符号界限,-128~127,其实内存本身的大小并未改变,改变的只是你主观的判断,内存只是黑你一个可以认为他是负数的选择,所以你的溢出标志位是否溢出,...

关于王爽的汇编语言的加减乘除指令
8086的算术运算类指令能够对二进制或十进制(BCD码)数进行加、减、乘、除运算,操作数的数据形式可以是8位或16位的无符号数或带符号数。对于单操作数指令,不允许使用立即数形式;对于双操作数指令,只有源操作可以使用立即数,两个操作数中必须有一个在寄存器中。1. 加法指令指令格式: 加法 ADD D...

8086汇编CPU自动修改IP与执行指令先后的问题
第1次,加载mov指令,ip指向下一语句sub,执行赋值 第2次,加载sub指令,ip加载完成后指向下一条jmp语句,执行减 第3次,加载jmp指令,ip加载完成后指向jmp后面的语句,第4次,执行跳转,跳转指令本身会修改ip的值,使ip的值第4次改变

...汇编语言第二版的检测点3.1 的第二个小问题,看不懂 jmp 0ff0:0100...
呵呵,这位朋友,你前面的段知识没理解通透,8086的地址线是20位的,它计算地址的公式是段地址剩16(16进制就是剩10,十进制的16转换成16进制数是10H)然后加上偏移地址 即是:段地址X16+偏移地址 = 物理地址(也就是书上说的绝对地址),,,看下3.1这道题,,段地址0ff0 x 10 = ff00...

8086CPU和汇编的问题
是的,不管你插上多大的内存,8086 CPU只能寻址 1M。因为8086 CPU 只有20根地址线,2的20次方是 1M,是它的最大寻址范围。另,为了避免糊涂,还要说一下数据线。所谓 16位机或 16 位 CPU 是指 CPU 的寄存器是 16 位宽,也就是数据线是 16 位。 8086 是 16 位 CPU,即一次能处理 16 位 ...

王爽汇编语言的检测点 12.1
8086系统把中断向量表中的中断明确分为3个部份:1.专用中断:类型号0~4(所以中断不是从1开始,而是0)2.系统备用中断:类型号5~31H 3.用户中断:类型号32H~0FFH 检测点12.1分析:计算中断服务入口地址的方法是:从内存地址为中断类型码*4和中断类型码*4+2的两个字单元中读取中断处理过程的入口...

王爽 汇编语言 附注5 公式证明那里不懂,谁帮我看一下
对于除法溢出的问题,他是用“做两次除法”来解决的。前一次除法,只是保留商数。余数,并没有丢掉,而是放在第二次除法了。80x86 的除法指令本身,就含有溢出的可能性。一般时,不要轻易使用。或者在使用前,加以判断,确定不会溢出时,再去执行除法指令。其实,可以利用除法指令,编写一个“不会溢出的...

推荐一本学习汇编语言的好书
清华大学出版社王爽的《汇编语言》。《汇编语言》共11章,以intel8086或8088系列计算机为背景,前8章系统地介绍宏汇编语言程序设计的基础知识、语法规则和程序设计方法;后3章主要介绍8086、8088计算机汇编语言的应用,包括输入输出的概念及其程序设计方法,中断的概念、方法及其开发应用技巧,文件编程方法等内容...

段寄存器是做什么的?
以下是王爽《汇编语言》中的一段话:8086CPU在访问内存时要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址。这里,需要看一下,是什么部件提供段地址。段地址在8086CPU的段寄存器中存放。8086CPU有4个段寄存器:CS、DS、SS、ES。当8086CPU要访问内存时由这4个段寄存器提供内存...

相似回答