已知80386工作在实地址方式下,其中- - 些寄存器和存储单元的内容如下表所示。请写出每条指令执行完后AX的值为多少?(1)MOV AX, 1200H(2) MOV AX, [1200H](3)MOV aX, [BP](4) MOV AX, [SI+1200H](5) MOV AX, [BP+SI+1100H]

1个回答
展开全部
摘要 亲你好
在8086中,EU--执行单元(Execution Unit)和BIU--总线接口单元(Bus Interface Unit)包含了一些工作寄存器。这些寄存器用于存储计算过程中的各种信息,如操作数地址、操作数以及运算的中间结果等。由于从寄存器中存取数据比从存储器中存取数据要快得多,因此在计算过程中,合理利用寄存器保存操作数、中间结果或其它信息,能显著提高程序的运行效率。
根据这些寄存器的作用,8086的寄存器组可以分为三类:通用寄存器、专用寄存器和段寄存器。
咨询记录 · 回答于2024-01-18
已知80386工作在实友羡地址方式下,其中一些寄存器和存储单元的内容如下表所示。 请写出每伍蔽条指令执行完后AX的值为多少? (1)MOV AX, 1200H AX = 1200H (2) MOV AX, [1200H] AX = [1200H]的存储单元的内容,具体值依赖于内存中[1200H]单元的内容。 (3)MOV AX, [BP] AX = [BP]的存储单元的内容,具体值依赖于内存中[BP]单元的内容。 (4) MOV AX, [SI+1200H] AX = [SI+1200H]的存储单元的内容,具体值依赖于内存中[SI+1200H]单元的内容。 (5) MOV AX, [BP+SI+1100H] AX = [BP+SI+1100H]的存储单元的内容,具体值依赖于内好橘拍存中[BP+SI+1100H]单元的内容。
亲你好 在8086的EU--执行单元(Execution Unit)和BIU--总线接口单元(Bus Interface Unit)两部分中,包含有一些工作寄存器。岁厅液这些寄存器用来存放计算过程中的各种信息,如操作数地址、操作数及运算的中间结果等。微处理器从寄存器中存取数据比乎物从存储器中存取数据要快的多。因此,在计算过程中,合理利用寄存器保存操作数、中间结果或其它信息,能提高程序的运行效率。 根据这些寄存器所起的作用,8086寄存器组可以分伏弊为三类:通用寄存器、专用寄存器和段寄存器。
# 通用寄存器 通用寄存器包括了8个16位的寄存器:AX、BX、CX、DX、SP、BP、DI及SI。其中AX、BX、CX、DX在一般情况下作为通用的数据寄存器,用来暂时存放计算过程中所用到的操作数、结果或其他信息。它们还可分为两个独立的8位寄存器使用,命名为AL、AH、BL、BH、CL、CH、DL和DH。这4个通用数据寄存器除通用功能外,还有如下专门用途: - AX作为累加器用,所以它是算术运算的主要寄存器。在乘除指令中指定用来存放操作数。另外,所有的I/O指令都使用AX或AL与外部设备传送信息。 - BX在计算存储器地址时,可作为基址寄存器使用。 - CX常用来保存计数值,如在移位指令、循环指令和串处理指令中用作隐含的计数档孝器。 - DX在作双字长运算时,可把DX和AX组合在一起存放一个双字长数,DX用来存放高16位数据。此外,对某些I/O操作,DX可用来存放I/O的端口地址。 SP、BP、SI、DI四个16位寄存器可以象数据寄存器一样在运算过程中存放操作数,但它们只能以字(16位)为单位使用。此外,它们更经常的用途是在存储器寻址时,提供偏移地址。因此,它们可称为指针或变址寄存器。 - SP称为堆栈指针寄存器,用来指出栈顶的偏移地址。 - BP称为基址指针寄存器,在寻址时作为基地址寄存清缺器使用,但它必须与堆栈段寄存器SS联用来确定堆栈段中的存储单元地址。 - SI为源变址寄存器,在串处理指令中,SI作为隐含的源变址寄存器与DS联用,以确定数据段中的存储单元地址,并有自动增量和自动减量的变址功能。 - DI为目的变址寄存器,在串处理指令中,DI和附加段寄存器ES联用答蠢辩,以达到在附加段中寻址的目的,然后DI自动增量或减量。
# 8086的专用寄存器 8086的专用寄存器包括蠢芦IP、SP和FLAGS三个16位寄存器。 ## IP寄存器 IP为指令指针寄存器,它用来存放将要执行的下一条指令地址的偏移量,它与段寄存器CS联合形成代码段中指令的物理地址。在计算机中,控制程序的执行流程就是通过控制IP的值来实现的。 ## SP寄存器 SP为堆栈指针寄存器,它与堆栈段寄存器联用来确定堆栈段中栈顶的地址,也就是说SP用吵世来存放栈顶的偏移地址。 ## FLAGS寄存器 FLAGS为标志寄存器,这是一个存放条件码标志、控制标志的16位寄升档肢存器。
**8086的标志寄存器** **条件码标志**用来记录程序中运行结果的状态信息。这些状态信息是根据有关运陆指令的运行结果由CPU自动设置的。由于这些状态信息往往作为后续条件转移指令的转移控制条件,所以称为条件码。 * **进位标志 CF**:记录运算时最高有效位产生的进位值。 * **符号标志 SF**:记录运算结果的符号。结果为负时置1,否则置0。 * **零标志 ZF**:运算结果为0时ZF位置1,否则置0。 * **溢出标志 OF**:在运算过程中,如操作数超出了机器可表示数的范围称为溢出。溢出时OF位置1,否则置0。 * **辅助进位标志 AF**:记录运算时第3位(半个字节)产生的进位值旁汪顷。 * **奇偶标志 PF**:用来为机器中传送信息时可能产生的代码出错情况提供检验条件。当结果操作数中1的个数为偶数时置1,否则置0。 **控制标志位有3位:** * **方向标志 DF**:在串处理指令中控制处理信息的方向。当DF=1时,串处理从高地址向低地址方向处理。当DF=0时,串处理就从低地址向高地址方向处理。 * **陷阱标志 TF**:用于调试时的单步方式操作。当TF=1时,每条指令执行完后产生陷阱,由系统控制计算机;当TF=0时,CPU正常工作,不产生陷阱。 * **中断标志 IF**:用于控制可屏蔽硬件中断。当IF=1时,允许8086微处理器响应中断请求,否则关闭中断。 8086提供了设置某些状态信息的指令。必要时,程序员可使用这些指令来建立状态信息。 调试程序Debug中陵罩提供了测试标志位的手段,它用符号表示某些标志位的值。
寄存器是有限存贮容量的高速液衫存贮部件,它们可用来暂存指令、数据和地址。 寄存器是CPU的组成部分,因为在CPU内,所以CPU对其读写速度是最快的,不需悔粗要IO传输。但同时也决定了此类寄存器数量非常有限,有限到几乎每个存储都有自己的名字,而且有些还有多个名字。 寄存器的作用主要是: 1. 可将寄存器内碧埋镇的数据执行算术及逻辑运算; 2. 存于寄存器内的地址可用来指向内存的某个位置,即寻址; 3. 可以用来读写数据到电脑的周边设备。
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消