偏移地址存放在什么寄存器,哪些寄存器用来指示存储器单元的偏移

http://www.itjxue.com  2023-01-23 21:35  来源:未知  点击次数: 

8086cpu中寄存器如何分组?每组寄存器的主要用途?那些寄存器用来指示有存储单元的偏移地址?

8086

CPU中有8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI;两个控制寄存器IP、FL;四个段寄存器CS、DS、SS、ES。8个通用寄存器都可以用来暂存参加运算的数据或中间结果,但又有各自的专门用途。例如,AX专用做累加器,某些指令指定用它存放操作数和运算结果;CX为计数寄存器,在某些指令中做计数器使用;DX为数据寄存器;BX为基址寄存器,BP为基址指针,SI为源变址寄存器,DI为目的变址寄存器,这4个寄存器在数据寻址中用来存放段内偏移地址(有效地址)或段内偏移地址的一部分;SP为堆栈指示器,用来存放栈顶有效地址。两个控制寄存器用来存放有关的状态信息和控制信息。例如,标志寄存器FL用来存放状态标志和控制标志;而指令指针用来存放下一条要取指令的有效地址。四个段寄存器用来存放段地址。例如,CS寄存器用来存放代码段的段地址;DS寄存器用来存放数据段的段地址;SS寄存器用来存放堆栈段的段地址;ES寄存器用来存放扩展段的段地址。

指令指针寄存器IP用来存放代码段中的偏移地址。在程序运行的过程中,它始终指向什么?

选A.

指令执行过程包括:

1.根据段地址寄存器CS和指令指针寄存器IP的值,在地址加法器中形成物理地址,通过地址线寻址到指定的内存单元,读取出指令,送到指令队列中等待指令。

2.IP的值加上当前指令的字节数,使之指向下一条指令的首地址,为读取下一条指令做好准备。

3.执行指令队列中的当前指令,再回到步骤1,寻址到新地址。

8086CPU取指令时,段地址由什么寄存器提供,偏移地址由什么寄存器提供。 12341

段地址由CS寄存器提供,偏移地址由IP寄存器提供。

CS= Code Segment; IP= Instruction Pointer。

汇编题目,会者进,高分求答案

二、填空17

1.在8086/8088系统中,存储器物理地址是分段组织的。堆栈段的段地址存放在(ss)寄存器中,栈顶数据的偏移地址放在(sp)寄存器中。代码段的段地址存放在(cs)寄存器中。

2.伪指令DB N,N为有符号数时,要使该指令合法,则N的最大值是(127)D,最小值是(-128)D。

3.(CS)=6000H,(DS)=3000H,(ES)=4000H,(SS)=5000H,(DI)=A100,操作数 [DI+1000H] 的寻址方式是(寄存器相对寻址),物理地址是(3B100h)。

4.CMP指令的功能是(用操作数1减去操作数2然后根据结果设置标志积存器)。

5.指令MOV. AX,[SI+100H]的具体操作是(把ds*16+si+100h的内存地址中的16位数据存入ax)。

6.无符号二进制字节数可表示的数的范围是(0~255)。

7.执行一条POP BX指令后,SP的内容发生的变化是(增加10h)。

8.AL寄存器的内容为08H,执行指令OR. AL,30H后,AL的值为(38h)。

9.测试寄存器AL和BL的值是否相等而不改变其值应使用指令(CMP AL, BL)。

10.二进制数0100 0001,若将该数分别看作是ASCII码字符,是(A),补码表示的带符号数,它对应的十进制数的真值是(191)。

11.标志寄存器FLAGS中ZF标志位的主要作用是(测试各种操作的结果是否为0)。

12.使汇编程序把4142H存入一个存储器字中。可以用以下几种等价方法实现要求:(mov ax, 4142h),(mov ah, 41h mov al, 42h),(mov ax, 0100000101000010b)。

13.XOR AX,AX执行后AX=(0),CF=(0),OF=(0)。

14.举出使得CF=0的三条指令。

mov ax, 0

xor ax, ax

and ax, 0FFFFh

(这样算不算?...)

15.指令LOOPAGAIN的功能(sub cx, 1 cmp cx, 0 jne AGAIN)。

16.AX=FFFFH,执行指令NEG AX后,AX=(0)H。

17.AL=39H,执行指令AND AL,0FH后AL=(9)H。

三、判断以下各语句是否有错误,如有错误请说明错误原因20

1.MOV AL,100 正确

2.MOV [1000H],100H 错误,非法指令

3.MOV BL,AX 错误,寄存器长度不相等

4.MOV [100],AX 错误,目标操作数段寄存器不明确

5.POP PSW 错误,非法指令

6.SHL DX,BL 错误,第二个操作数必须为1或CL

7.MUL AL,BL 错误,MUL指令只能有一个操作数

8.AND AX,[1000] 正确

9.XCHG CS,ES 错误,CS不能参与交换

10.LDS AL,[SI] 错误,第一个操作数必须为16位通用寄存器

11.ROL AL,4 正确

12.LEA BX,TABLE 正确

13.MOV AL,FFH 错误,mov al, 0ffh

14.PUSH DS 正确

15.ASSUME CS:CODE;DS:DATA 如果后面是注释,正确,否则错误,应改;为,

16.DW 0FFH,-12,127 正确

17.XOR CL,CL 正确

18.ADD 55H,AL 错误,非法操作数

19.CMP [100H],[200H] 错误,同上

20.OR AL,80H 正确

(责任编辑:IT教学网)

更多

推荐Javascript/Ajax文章