A. 汇编语言 寄存器间接寻址 MOV AX,[BX];物理地址=DS× 16+BX 其中的DSx16是
微机原理课程没正内容,你看看寻址方面的野尺,8086处理器中,DS是段地址寄存器,段地址实际上是段起始地址的高16位,所以要X16,不明白颂察高的话,好好看看书。
B. 汇编语言中的问题……寄存器间接寻址 MOV AX,[BX];物理地址=DS× 16+BX 其中的D
因为一个寄存访问不完内存1M地址,就是20位地址,段寄耐稿猛存器乘以昌桥16就是20位敬猜地址再加上一个15就能访问完这1M的地址。
C. 计算机组成原理相关问题二进制补码运算,寻址方式和物理地址表达式
(1-1) [16]补 =0001 0000B
[6]补 =0000 0110B (+
-------------------------------------
[16+6]补 =0001 0110B
16+6 =16H =22D
.
(1-2) [9]补 =0000 1001B
[-7]补 =1111 1001B (+
-------------------------------------
[9-7]补 =0000 0010B ,符号位进位1自然丢失
9-7 =02H =02D
.
(1-3) [8]补 =0000 1000B
[-18]补 =1110 1110B (+
-------------------------------------
[8-18]补 =1111 0110B
8-18 = -0AH = -10D
.
(1-4) [16]补 =0001 0000B
[-6]补 =1111 1010B (+
-------------------------------------
[16-6]补 =0000 1010B ,符号位进位1自然丢失
16-6 = 0AH =10D
.
.
(2)
MOV AL, [SI] 寄存器庆纯间接寻址, 物理地址 =(DS)x10H+(SI)
MOV AL, [2000H] 直接寻址, 物理地址 =(DS)x10H+2000H
ADD AL, disp[BX][SI] 基址变派绝址寻址, 物理地址 =(DS)x10H+(BX)+(SI)+disp
MOV AH, [BP][SI] 基址变址寻址, 物理地誉羡咐址 =(SS)x10H +(BP)+(SI)
MOV AX, ES:[BP] 寄存器间接寻址, 物理地址 =(ES)x10H +(BP)
D. 七种寻址方式举例
七种寻址方式举例为:
1、立即寻址方式:
指令:MOV AX,1234H
则: AX = 1234H
2、寄存器寻址方式:
对于16位操作数,寄存器可以是差谈脊:AX、BX、CX、DX、SI、DI、侍并SP和BP等。
6、基址加变址寻址方式:
MOV AX,[BX][DI]
7、相对基址加变址寻址方式:
MOV AX,[BX+DI-2]
假设,(DS) = 5000H,(BX) = 1223H,DI = 54H,(51275)= 54H,(51276) = 76H
物理地址= 50000 + 1223 + 0054 + FFFE(-2 各位取反末位加一)= 51275H
执行该指令后 (AX) = 7654H
E. 寄存器寻址方式
不可以直接mov ds,3
不可以直接往嫌山段寄存器里传立即数。芹拍中
不能传立即数和段寄存器本身贺旅的特点有关系。
由于8086的物理地址是有段寄存器内容*16+偏移量决定的,所以其地址的生成是由一些特殊的移位实现的,如果传送立即数,没有寄存器用来保存该地址。所以段地址寄存器的赋值是不可以用立即数的。
除了段地址,也就是ds,cs,ss,es,和一些特殊功能寄存器,比如pc,sp等,其余的寄存器,像ax,bx,cx,dx,di,si等都可以传立即数。
F. 寄存器寻址和寄存器间接寻址的区别
一、塌此主体不同
1、寄存器寻址:是指操作数在寄存器中,由指令操作码中的rrr三位的值和PSW中RS1及RS0的状态,选中某个工作寄存器区的某个寄存器,然后进行相应的指令操作。
2、寄存器间接寻址:将指定的寄存器内容为地址,由该地址所指定的单元内容作为操作数。
二、功能不同
1、寄存器寻址:指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。
2、寄存器间接寻址:寄存器内存放的是操作数的地址,而不是操作数本身,即操作数是通过寄存器间接得到的。
三、特团笑迅点不同
1、寄存器寻址:在指令执行过程中,会减少读/写存储器单元的次数,所以,使用寄存器寻址方式的指令具有较快的执行速度。
2、寄存器间接寻址:需要以寄存器符号的形式来表示,且在寄存器名称前面加上间接寻址符号“@”。例如指令MOV A,@R0就使用了寄存器间接寻址方式。
G. 在寄存器间接寻址方式中,段地址有哪些确定的方法
就8086而言,寄存器间接寻址段地址确定方法两种而仿纯胡盯已:
1.根据段前缀来定。
比如指令:MOV AX,ES:[DI],则段地址为ES
2.根据所使用的备做咐寄存器来定
如果用的是BX,SI,DI则默认的是DS,用的是BP则为SS。
如MOV AX,[BX],段地址为DS,而指令MOV AX,[BP],则段地址为SS
H. 微机原理寻地址方式和求物理地址。
mov es:[si], ax 中目的操作数为 寄存器间接寻址,其物理地址=es*16(即左移4位)+si=20000h+0200h=20200h 。
从已有条件看,ax 为源操作数,但其 未知。
I. 请指出下列指令源操作的寻址方式,并计算物理地址
mov [bx,],cx 寄存器间接寻址(或基址寻址) 物理地址为ds*16+bx
mov[2000H],BX 直接寻址 ds**16+2000h
mov[BP],BX,寄存器间接寻址(或基址寻址) 物理地址为ss*16+bp
mov[BP+200],BX,基址相对寻址 物理地址为ss*16+bp+200
mov[BX+SI+300],AX;基址加变址相对寻址 ds*16+bx+si+300
粗心大意,指令没有写逗号,学习态度不端正。另外,随便找本书看看就有,何必这点小事就问人?
J. 附加段BX寄存器间接寻址方式
MOV
AX,ES:[BX]
在寄存器银薯纯间接寻址的基础上,我们也可以指定段跨越前缀锋咐来取得其他段中的数据。(比如ES:
就是指定附加段)
举个例子,如果(ES)=2100H,(BX)=0100H,则计算出物理地址手贺值为21100H。