1、A0B1C任意D不影响 2. 某次求和结果最高位为1,则SF_。不影响3. 减法指令产生差值为38H则标志正确的是_。ZF1SF1PF1PF04. 请问两个8位数据8FH与36H相加后,状态标志ZF、SF、PF的状态是什么?1. B 3. D 4. 直接对这两个数据进行(无符号数据)加法:8FH36HC5H 结果C5H不是零,所以:ZF0;最高位D71,所以:SF1;结果C5H中“1”的个数是4,为偶数,所以:PF1;溢出标志请问两个8位数据8FH与36H相加后,状态标志溢出标志位CF和OF的状态是什么?进位标志针对无符号数据加减运算。最高位没有进位,所以:CF0;溢出标志针对有符号数据加减运
2、算。它的判断可以采用一个简单的规则:当两个相同符号的数据相加(含不同符号的数据相减),如果运算结果的符号与原数据符号不同,就产生溢出;其他情况,不会产生溢出。对于8FH(负数)与36H(正数)两个不同符号数据相加,根本不会产生溢出,所以:OF0。如果8FH减去36H,则结果是:8FH36H59H。没有借位,所以CF0;“负数减正数”可以认为是“负数加负数”,结果不应是正数(59H),所以有溢出OF=1。控制标志简述3个控制标志的含义。DF方向标志(DirectionFlag)。该标志用于串操作指令中,控制地址的变化方向。如果设置DF=0,每次串操作后的存储器地址就自动增加;设置DF1,每次串操
3、作后的存储器地址就自动减少。方向标志可以用CLD指令复位,STD指令置位。IF中断允许标志(Interrupt-enable该标志用于控制外部可屏蔽中断是否可以被处理器响应。若设置IF1,则允许中断;设置IF0,则禁止中断。TF陷井标志(TrapFlag),也常称为单步标志。该标志用于控制处理器是否进入单步操作方式。若设置TF1,处理器单步执行指令:即处理器在每条指令执行结束时,便产生一个编号为1的内部中断。这样可以方便地对程序进行逐条指令的调试。这种内部中断称为单步中断;这种逐条指令调试程序的方法就是单步调试。设置TF0,处理器正常工作。位、字节、字和双字每个存储单元存放一个_,双字需要用_
4、个存储单元存放,一个字需_个存储单元存放。每个存储单元存放一个 字节,双字需要用4个存储单元存放,一个字需要2个存储单元存放。多字节数据的存放1. 偏移地址2000H2003H的4个字节单元依次存放如下数据(16进制):10203040。请问偏移地址2000H处的字节、字和双字单元内容分别是什么?2. 设物理地址(10FF0H)10H,(10FF1H)20H,(10FF2H)30H,如从地址10FF1H中取出一个字的内容是_。1020H3020H 2030H2010H1. Intel80x86系列微处理器采用“小端方式”存放多字节数据,即在内存中低地址存放低字节、高地址存放高字节,就是所谓“低
5、对低、高对高”原则。因此,结论是:2000H字节单元10H 2000H字单元2010H 2000H双字单元40302010H 2.答案:B。10FF1H开始的一个字空间由两个内存单元组成,其地址分别为10FF1H和10FF2H,8086的数据在内存中是以小端方式存放的,因而10FF2H中存放的是高字节,10FF1H中存放的是低字节。所以从地址10FF1H中取出一个字的内容是3020H。8086存储器的逻辑段1. 8086/8088的1MB主存空间最多能分成多少个逻辑段,最少分成多少个逻辑段?2. 关于8088CPU的逻辑段论述正确的有_。每个逻辑段不超过64KB 每个逻辑段的起始物理地址的低4
6、位全为0 一个程序中,代码段只能有一个 数据段和堆栈段的段地址不能相同 E指令指针寄存器IP指示当前代码段中下一条指令的偏移地址 F一个存储单元的物理地址不是唯一的(逻辑地址不唯一)。1. 逻辑段有两个限制:容量小于等于64KB,段开始于模16地址。如果从最低地址00000H开始,每隔16个字节就分一个段(最小的逻辑段容量),这样1MB主存空间最多就分成1MB1622024216个逻辑段。如果从最低地址00000H开始,每隔64KB分一个段(最大的逻辑段容量),这样1MB主存空间最少就分成1MB64KB22021624个逻辑段。ABE逻辑地址1. 已知一个16字节的数组始于逻辑地址F000:1
7、070,请问最后一个字节所在的物理地址?2. 设DS5788H,偏移地址为94H,该字节的物理地址_。57974H5883H 57914H58ECH1. 这是一个常见的逻辑地址转换为物理地址的例子:物理地址段地址左移4位(对16进制数来说就是一位)偏移地址 第一个字节单元的物理地址是:F0000H1070HF1070H 最后一个字节单元的物理地址是:F1070H(161)F107FH C根据公式:物理地址段地址左移4位(对16进制数来说就是一位)偏移地址计算得到(物理地址不可能为16位)段寄存器简述4个段寄存器的作用。CS存放代码段的段地址SS存放堆栈段的段地址DS存放数据段的段地址ES存放附
8、加段的段地址段超越1. 8088按逻辑段组织程序,数据变量应该且必须在数据段中。2. 数据访问时默认使用的段一定是数据段DS. 3. 数据可以存放在任何段中。4. 当数据存放在附加段时使用的段超越是ES:5. movax,es:di+100h”指令从_段取出数据送AX。CSSSDSES 6. “movax,bp+di”指令从_段取出数据送AX。ES1. 答案:错。数据变量可以位于任何一个段中。使用BP基址指针寄存器访问主存,则默认是SS段 3. 答案:只要明确指明是哪个逻辑段就可以 4. 答案:5. 答案:D。ES是附加段时使用的段超越。6. 答案:使用BP基址指针寄存器访问主存,则默认是SS
9、段段寄存器的使用规定1. CPU取指令时是取CS*16+SP的内存单元中的内容。2. 堆栈段的偏移地址是通过SP寄存器给出的。3. 使用BP基址指针寄存器访问主存,只能是SS段。取指令时是取CS*16+IP的内存单元中的内容。正确。堆栈段的偏移地址是通过SP寄存器给出的。SP指示堆栈的栈顶指针。3.使用BP基址指针寄存器访问主存,默认是SS段。也可以使用段超越访问其他段。分段示例1. 若用户堆栈位于存储区10000H1FFFFH,则该堆栈的段地址是_ 10000H1FFFFH01000H00FFFH2. 某系列微机对存储器的分段,如果每个段最多的字存储单元(16位二进制)是32K,那么表示段内
10、字节单元偏移地址的二进制位数应是_位 14151620A。每个段的起始地址必须是一个小节的地址,即低4位二进制数为0。这里的段地址是指段开始的物理地址。段寄存器只保存段起始物理地址的高16位,所以有时也将段地址理解为高16位部分。如果是后者的理解,则答案应该是C。每个段最多的字存储单元(16位二进制)是32K,那么每个段内字节单元最多是64K,寻址64K的存储空间需要16条地址线。1. 指令组成指令格式为操作码操作数1,操作数2; 注释寻址方式什么是寻址方式?分为哪些类?指令中用于说明操作数位置的方法就是操作数的寻址方式。分为:立即(数)寻址方式寄存器寻址方式存储器寻址方式立即数寻址方式指令m
11、ovax,1020h中源操作数是(),它的寻址方式是()寻址方式,操作数存放在()段中,汇编后的机器码为三个字节,从低地址到高地址分别为B8、( )、( )。ax,1020h中操作数是(1020h),它的寻址方式是(立即数)寻址方式,操作数存放在(代码)段中,汇编后的机器码为三个字节,从低地址到高地址分别为B8H(20H10H)。注意数据在内存中是小端方式存放。下面不能用于寄存器寻址的寄存器有() A.B.AXC.IPD.SIE.CLF.SP解答:C。寄存器寻址方式的操作数存放在CPU的内部寄存器reg中,它可以是8位寄存器r8:AHALBHBLCHDHDL;也可以是16位寄存器r16:BXC
12、XDXDIBPSP。另外,操作数还可以存放在4个段寄存器中seg:ES。IP是指令指针寄存器,不能存放操作数。1. 比较存储器寻址方式与寄存器寻址方式的特点 2. 存储器寻址方式在指令中给出操作数在内存中的地址,该地址是() 逻辑地址有效地址偏移地址D.物理地址E.段地址1. 解答:存储器寻址方式寄存器寻址方式 操作数存放的位置:内存寄存器 寻址速度慢快 存放数量多有限 2. 解答:。主存寻址方式。在这种寻址方式下,指令中给出的是有关操作数的主存地址信息。8086的存储器是分段管理的,所以这里给出的地址只是偏移地址(称有效地址EA),而段地址在默认的或用段超越前缀指定的段寄存器中直接寻址方式指
13、出下面指令中源操作数的寻址方式。bx,2002h2002h2002h;立即寻址方式,2002h是16位立即数 2002h直接寻址方式,有效地址为2002h 寄存器间接寻址方式指出源操作数的寻址方式,并判断对错,并说明原因:ax,sp ax,spax,siax,siax,bpax,bpax,dsax,dsax,bx ax,bxax,sp ; 错。寄存器间接寻址只能用bp,bx,si,di,sp不能用于寄存器间接寻址。ax,sp寄存器寻址ax,si寄存器间接寻址 ax,siax,bpax,bpax,dsds不能用于寄存器间接寻址ax,dsax,bxax,bx寄存器相对寻址方式假设有关寄存器及存储单
14、元内容如下:DS1000h,BX0100h,SI0002 10100H12h,10101H34h,10102H56h,10103H78h 11200HA1h,11201HB2h,11202HC3h,11203HD4h 说明如下各条指令执行完后,CX?cx,1200 bx 1200h bx 1100hbx对后3种存储器寻址方式,需要首先计算它的有效地址,然后与段地址组合成物理地址,进而从存储单元取出内容(注意这是16位数据)。CX1200 CXBX0100h CXB2A1h,因为物理地址是10000H1200H11200H CX3412h,因为物理地址是10000H0100H10100H CXB
15、2A1h,因为物理地址是10000H1100H0100H11200H基址变址寻址方式判断对错,并说明原因:ax+1000h;bp+ax;bx,sp+di;bx+di;bx,bp+si;bx,cs+si;bx,bx+ax;ax+1000hax不是基址寄存器 bp+axAx不是变址寄存器 ,sp+diSp不是基址寄存器 bx+di对 bx,bp+sibx,cs+sics不是基址寄存器 bx,bx+axAx不是变址寄存器相对基址变址寻址方式指令“movwnumbxsi”源操作数的物理地址的是_ 16CSBXSI+wnumSSBXSI+wnum DSBXSI+wnumESBXSI+wnumD寻址方式w
16、numbxsi表示的偏移地址是BXSI+wnum,段超越前缀es:说明数据存放在附加段中,所以物理地址是:ESBXSI+wnum。操作数寻址方式小结写出下列指令的源操作数采用的寻址方式?如果可以计算,其物理地址是多少?假设DS3000H、ES3100H、SS2000H、SI00ABH、BX0200H、BP0020H,变量var的偏移地址为0080H。ax,var ax,varbx ax,200h ax,0 ax,si ax,bp ax,ds:bp+2 ax,varbxsi直接寻址,物理地址3000H160080H30080H 寄存器间接寻址,物理地址3000H160200H30200H 寄存器相对寻址,物理地址3000H160280H0080H30280H 立即数寻址,操作数在代码段 寄存器寻址,操作数在寄存器SI中为00ABH 寄存器相对寻址(答间接寻址也可以),物理地址2000H160020H20020H 寄存器间接寻址,物理地址3100H160200H31200H bp+si 基址变址寻址,物理地址3000H160020H00ABH300CBH ax,varbxsi 相对基址变址寻址,物理地址3000H160200H00ABH0080H3032BH
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2