微型计算机技术课后习题一二三章答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微计算机二三章
1.已知物理地址为FFFF0H,且段内偏移量为A000H,若对应的段地址放在DS中,则DS应为(B) 。
A.5FFFH
B.F5FFH
C.5FFF0H
D.F5FF0H
2.下列CPU中属于准16位的是C 。
A.8080
B.8086
C.8088
D.80386SX
3.8088的外部数据总线为 A 位。
A.8
B.16
C.32
D.64
4.8086CPU的内部结构由 D 组成。
A.ALU,EU,BIU
B.ALU,BIU,地址加法器
C.寄存器组,ALU
D.EU,BIU
5.每当8086的指令队列中有B空字节,BIU就会自动把指令取到指令队列中。
A.1个
B.2个
C.3个
D.4个
6.BIU的功能是C。
A.计算有效地址
B.分析指令,产生控制信号
C.与存储器或I/O端口之间进行传送,并能形成物理地址
D.进行算术运算与逻辑运算
7.指令队列缓冲器的作用是 D 。
A.暂存操作数地址
B.暂存操作数
C.暂存指令地址
D.暂存预取指令
8.8086的指令队列的长度是 C 字节。
A.4个
B.5个
C.6个
D.8个
9.8088的指令队列的长度是A字节。
A.4个
B.5个
C.6个
D.8个
10.下列寄存器都存在于BIU部件的是B。
A.SP、CS
B.IP、DS
C.BP、IP
D.FR、SP
11.8086 CPU内部共有 C 个16位寄存器。
A.12
B.13
C.14
D.16
12.不属于EU部分的寄存器是A 。
A.IP
B.BP
C.DI
D.SP
13.8086/8088的状态标志有D个。
A.3
B.4
C.5
D.6
14.8086有B个地址/数据复用引脚。
A.8
B.16
C.20
D.32
15.8088有 A 个地址/数据复用引脚。
A.8
B.16
C.20
D.32
16.8086/8088中,一个最基本的总线周期由 B 个时钟周期(T状态)组成。
A.1
B.4
C.2
D.6
17.在8086/8088中,在T1状态,CPU往总线发出
C信号。
A.数据
B.状态
C.地址
D.其它
18.总线周期为T1、T2、T3、T4,若要增加等待状态T W,它应插在C之后。
A.T1
B.T2
C.T3
D.T4
19.若在一个总线周期中,CPU对READY信号进行了5次采样,那么该总线周期共包含____个时钟周期。
D
A.5
B.6
C.7
D.8
20.8086复位时所需的RESET信号至少应维持 B 。
A.2个时钟周期的高电平
B.4个时钟周期的高电平
C.2个时钟周期的低电平
D.4个时钟周期的低电平
21.在下列信号中,都属于输入信号的是C。
A.HOLD,INTR,DT/ R
B.READY ,HLDA,M/ IO
C.RESET,HOLD,MN/MX
D.M/IO,ALE,TEST
22.CPU访问内存时,RD开始有效时对应的状态是B。
A.T1
B.T2
C.T3
D.T4
23.8086/8088的存储器可以寻址1MB的空间,在对I/O进行读写操作时,20位地址中只有B 有效。
A.高16位
B.低16位
C.低8位
D.高8位
24.8086/8088的存储器可以寻址1MB的空间,在对I/O进行读写出操作时,20位地址中只有低16位有效。
这样,I/O地址的寻址空间为 A 。
A.64K
B.256K
C.128K
D.10K
25.关于中断NMI和INTR的触发方式,下列说法正确的是 C 。
A.NMI是上升沿触发,INTR是低电平触发
B.NMI是下降沿触发,INTR是低电平触发
C.NMI是上升沿触发,INTR是高电平触发
D.NMI是下降沿触发,INTR是高电平触发
26.8086CPU的引脚中,接收外部中断请求输入信号的引脚有 C 。
A.15个
B.8个
C.2个
D.1个
27.当8086CPU从总线上撤消地址,而使总线的低16位置成高阻态时,其最高4位用来输出总线周期的 C 。
A.数据信息
B.控制信息
C.状态信息
D.地址信息
28.在8086的总线周期中,ALE在T1周期有效,它是一个C。
A.负脉冲,用于锁存地址信息
B.负脉冲,用于锁存数据信息
C.正脉冲,用于锁存地址信息
D.正脉冲,用于锁存数据信息
29.CPU响应DMA传送请求的信号是 B 。
A.READY
B.HLDA
C.RD
D.WR
30.8086CPU在进行I/O写操作时,M/IO和DT/R必须是B。
A.0,0
B.0,1
C.1,0
D.1,1
31.INTA信号是位于连续周期中的 B 个负脉冲。
A.1
B.2
C.3
D.4
32.在8086系统中,CPU被启动后,IP及四个段寄存器的初始状态是D。
A.全部清0
B.全部被置成FFFFH
C.IP=FFFFH,四个段寄存器清0
D.CS=FFFFH,其它的寄存器被清0
33.在8086系统中,CPU被启动后,IP及四个段寄存器的初始状态是 D 。
A.全部清0
B.全部被置成FFFFH
C.IP=FFFFH,四个段寄存器清0
D.CS=FFFFH,其它的寄存器被清0
34.8086CPU经加电复位后,执行第一条指令的地址是 D 。
A.FFFFH
B.03FFFH
C.0FFFFH
D.FFFF0H
35.8086系统复位后,下面的叙述错误的是__B。
A.系统从FFFF0H处开始执行程序。
B.系统此时能响应INTR引入的中断。
C.系统此时能响应NMI引入的中断。
D.DS中的值为0000H。
36.8086存储器读周期中,数据开始的状态是C。
A.T1
B.T2
C.T3
D.T4
37.8086存储器写周期中,数据开始的状态是 B 。
A.T1
B.T2
C.T3
D.T4
38.在8086的总线写周期中,微处理器给出的控制信号(最小模式下),WR,RD,M/IO分别是 C 。
A.1,0,1
B.0,1,0
C.0,1,1
D.1,0,0
39.在8086的最小模式系统中,M/IO、RD和WR当前信号为1、0、1,表示现在进行的是__D。
A.I/O读
B.I/O写
C.存储器写
D.存储器读
40.在8086的写周期中,各信号出现的正确序列为__D_。
A.ALE的下降沿、地址信号、数据信号
B.ALE的上升沿、地址信号、数据信号
C.地址信号、ALE的下降沿、数据信号
D.地址信号、ALE的上升沿、数据信号
一、练习
1.8086系统中存储器的逻辑地址和物理地址之间有什么关系?
2.设段基址为4ABFH,物理地址为50000H,求偏移地址是什么?
3.存储器为什么分段编址?
4.什么是端口、接口?端口地址编址方法有哪些?
1.80386CPU寄存器结构中比8086增加的部分有哪些?
其主要用途是什么?
2. 简述实地址方式和虚拟8086方式的区别。
3. 32位微处理器中如何实现逻辑地址到物理地址的转换?
怎样提高转换速度?
4. 假设虚拟地址为0100:00000200H,禁止分页。
如果描述符中
读出的段基址为00030000H,那么操作数的物理地址是什么?
5. 采用描述符表有什么优点?
三、思考题
43.8086指令MOV AX,1234H,该指令源操作数的寻址方式为 A 。
A.立即寻址
B.寄存器寻址
C.直接寻址
D.寄存器间址
44.使用直接寻址方式时,操作数总是在C中。
A.通用寄存器
B.堆栈
C.主存单元
D.段寄存器
45.寄存器间接寻址方式中,操作数在 C 中。
A.通用寄存器
B.堆栈
C.主存单元
D.段寄存器
46.8086指令MOV AX,[BX],该指令源操作数的寻址方式为D。
A.立即寻址
B.寄存器寻址
C.直接寻址
D.寄存器间址
47.8086指令MOV AX,[3000H],该指令源操作数的寻址方式为C。
A.立即寻址
B.寄存器寻址
C.直接寻址
D.寄存器间址
48.8086在基址加变址的寻址方式中,基址寄存器可以为 B ,变址寄存器可以为SI或DI。
A.AX或CX
B.BX或BP
C.SI或BX
D.DX或DI
49.8086CPU在基址加变址的寻址方式中,基址寄存器可以为BX或BP,变址寄存器可以为D。
A.AX或CX
B.BX或BP
C.SI或BX
D.SI或DI
50.8086/8088可用于寄存器间接寻址的寄存器有D个。
A.1
B.2
C.3
D.4
51.采用寄存器间接寻址时,存储单元的有效地址由寄存器指出,这些寄存器为C。
A.AX,BX,CX,DX
B.CS,ES,DS,SS
C.BX,BP,SI,DI
D.SP,BP,SI,DI
52.如果以BP寄存器对操作数进行间接寻址,则操作数默认在 C 。
A.代码段
B.数据段
C.堆栈段
D.扩展段
53.如果以BX寄存器对操作数进行间接寻址,则操作数默认在B。
A.代码段
B.数据段
C.堆栈段
D.扩展段
54.MOV AX,ES:[BX][SI]的源操作数的物理地址是B。
A.16×(DS)+(BX)+(SI)
B.16×(ES)+(BX)+(SI)
C.16×(SS)+(BX)+(SI)
D.16×(CS)+(BX)+(SI)
55.(DS)=2000H,(SS)=1500H,(ES)=3200H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中的变量名VAL(偏移量)值为50H,指出下列各条指令中源操作数的寻址方式是什么?对存储器操作,其物理地址是多少?
(1)MOV AX,[100H]
(2)MOV AX,ES:[BX]
(3)MOV AX,[BP]
(4)MOV AX,VAL[SI]
(5)MOV AX,[BX][SI]
(6)MOV AX,VAL[BX][SI]
56.假设V1和V2是用DW定义的变量,下列指令中正确的是 B 。
A.MOV V1,V2
B.MOV V1,20H
DB.MOV AX,[SI+DI]
C.MOV CX,[BP+BX]
D.MOV AX,[SI+BP]
58.设(20010H)=3FH,(20011H)=B2H,则执行下列指令后BX= B 。
MOV AX,2000H
MOV DS,AX
MOV BX,[0010H]
A.3FB2H
B.B23FH
C.3F3FH
D.B2B2H
59.下面格式不正确的指令是 C 。
A.MOV AX,38
B.MOV SP,38
C.MOV DS,38
D.MOV AL,38
60.设M/IO,WR,RD在某时刻分别为1,0,1时,在下列指令中与其对应的是。
A.MOV AX,[BX+10]
B.IN AL,110
C.MOV ES:[DI],AX
D.OUT 40H,AL
61.设当前SP中为0400H,在执行了PUSH DS,PUSH AX两条指令后,SP中为 D 。
A.0402H
B.0404H
C.03FEH
D.03FCH
62.设(SP)=0100H,(SS)=2000H,执行PUSH BP指令后,栈顶的物理地址是 A 。
A.200FEH
B.0102H
C.20102H
D.00FEH
63.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的存储器单元的物理地址是 D 。
A.20102H
B.20101H
C.200FEH
D.200FFH
64.设(SP)=2800H,使(SP)=27FEH的正确指令是 B 。
A.NEG A
B.MOV SP,27FEH
C.POP AX
D.MOV [SP],27FEH
65.若寄存器AX、BX、CX、DX的内容分别为0018H,0019H,0020H,0021H时,依次执行PUSH AX,PUSH BX,POP CX,POP DX后,寄存器CX的内容为 B 。
A.0018H
B.0019H
C.0020H
D.0021H
66.若用户堆栈位于存储区10000H-1FFFFH,则该堆栈的段基址是 C 。
A.10000H
B.1FFFFH
C.1000H
D.0FFFH
67.假定(DS)=4000H,(42728H)=55H,(42729H)=AAH,执行指令LEA BX,[2728H]后,BX中的内容是 C 。
A.AA55H
B.55AAH
C.2728H
D.4000H
68.假定(DS)=4000H,(DI)=0100H,(40100H)=55H,(40101H)=AAH,执行指令LEA BX,[DI]后,BX中的内容是 C 。
A.AA55H
B.55AAH
C.0100H
D.4100H
69.设AX=C544H,在执行指令ADD AH,AL后, C 。
A.CF=0,OF=0
B.CF=0,OF=1
C.CF=1,OF=0
D.CF=1,OF=1
70.若(AX)=2891H,问执行NEG AX指令后,CF和SF标志位的状态分别是D 。
A.0和0
B.0和1
C.1和0
D.1和1
71.CMP指令和 C 指令执行同样的操作,但不送回操作结果,而仅仅影响标志位。
A.ADD
B.ADC
C.SUB
D.SBB
72.INC指令不影响 B 标志。
A.OF
B.CF
C.ZF
D.SF
73.若(AX)=0122H,四个标志位CF、SF、ZF、OF的初始状态为0,执行指令SUB AX,0FFFH 后,这四个标志位的状态是 B 。
A.CF=1,SF=1,ZF=1,OF=1
B.CF=1,SF=1,ZF=0,OF=0
C.CF=0,SF=0,ZF=0,OF=0
D.CF=0,SF=0,ZF=1,OF=1
74.8086执行乘法指令,当得到16位乘积时,结果在A
中。
A.AX
B.BX
C.CX
D.DX
75.8086执行乘法指令,当得到32位乘积时,结果的高16位在 D 中。
A.AX
B.BX
C.CX
D.DX
76.8086执行除法指令时,当被除数为16位,则除数为
A 位。
A.8
B.16
C.32
D.64
77.8086执行除法指令时,当被除数为32位,则除数为
B 位。
A.8
B.16
C.32
D.64
78.TEST指令和 A 指令执行同样的操作,但不送回操作结果,而仅仅影响标志位。
A.AND
B.OR
C.NOT
D.XOR
79.假设(AX)=0FF60H,则下述程序段执行后,(AX)= ,CF= 。
STC
MOV DX,96
XOR DH,0FFH
SBB AX,DX
80.下列四条指令都可用来使AL清‘0’,但其中不能清‘进位’位的是 C 。
A.XOR AL,AL
B.AND AL,0
C.MOV AL,0
D.SUB AL,AL
81.下列8086指令中,对AX的结果与其他三条指令不同的是 D 。
A.MOV AX,0
B.XOR AX,AX
C.SUB AX,AX
D.OR AX,0
82.设(AX)=ABDFH,则在执行指令
AND AX,0001H后,AX寄存器的内容为 C 。
A.ABDEH
B.FFFFH
C.0001H
D.0000H
83.设(AX)=ABDFH,则在执行指令
AND AX,8000H后,AX寄存器的内容为 D 。
A.ABDEH
B.FFFFH
C.1000H
D.8000H
84.设(AX)=ABDFH,则在执行指令
OR AX,0001H后,AX寄存器的内容D 。
A.ABE0H
B.FFFFH
C.0001H
D.ABDFH
85.若(AL)=10101101B,为了使其内容变为01011101B,下列 A 指令执行一次即可完成此操作。
A.NOT指令
B.OR指令
C.AND指令
D.XOR指令
86.条件转移指令JNE的测试条件是 C 。
A.ZF=1
B.CF=0
C.ZF=0
D.CF=1
87.使得JB指令执行转移操作的条件是 A 。
A.CF=1 且ZF=0
B.CF=1
C.CF=0或ZF=1
D.ZF=0
88.假设AX和BX寄存器中存放的是有符号整数,为了判断AX寄存器中的数据是否大于BX 寄存器中的数据,应采用下面 D 指令序列?
A.SUB AX,BX JC LABEL
B.SUB AX,BX JNC LABEL
C.CMP AX,BX JA LABEL
D.CMP AX,BX JG LABEL
89.有下列程序段
AGAIN:MOV AL,[SI]
MOV ES:[DI],AL
INC SI
INC DI
LOOP AGAIN
下列指令中 A 可完成与上述程序段相同的功能。
A.REP MOVSB
B.REP LODSB
C.REP STOSB
D.REPE SCASB
90.有下列程序段
AGAIN:MOV ES:[DI],AL
INC DI
LOOP AGAIN
下列指令中 C 可完成与上述程序段相同的功能
A.REP MOVSB
B.REP LODSB
C.REP STOSB
D.REPE SCASB
91.设(SP)=000CH,(SS)=00A8H,在执行
CALL DWORD PTR [DI]指令后得到栈顶的物理地址为 D 。
A.00A90H
B.00A8EH
C.00A8AH
D.00A88H
92.若(SP)=0124H,(SS)=3300H,在执行RET 4这条指令后,栈顶的物理地址为 D 。
A.33120H
B.3311EH
C.33128H
D.3312AH
93.如果一个子程序的末尾采用段间返回指令,则返回时,从堆栈弹出 C 个字节。
A.1
B.2
C.4
D.6
94.如果一个子程序的末尾采用段内返回指令,则返回时,从堆栈弹出 B 个字节。
A.1
B.2
C.4
D.6
95.在RET n指令中,n可以为 C 。
A.1
B.3
C.4
D.5
96.下列指令中允许寻址范围最大的是 D 。
A.JNZ NEXT
B.LOOP NEXT
C.JMP SHORT PTR NEXT
D.CALL NEAR PTR PROC_NAME
97.已知(IP)=1000H,(SP)=2000H,(BX)=283FH,指令
CALL WORD PTR[BX]的机器代码是FF17H,试问执行该指令后,内存单元1FFEH中的内容是 D 。
A.28H
B.3FH
C.00H
D.02H
98.设(SP)=1000H,(CS)=1FC0H,(IP)=2140H,则执行段间调用指令之后,堆栈段内0FFEH单元的内容为 B 。
A.1FH
B.C0H
C.21H
D.40H
第三章习题讲评
3.1 已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H
SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。
在以上给出的环境下,试问下列指令或指令段执行后的结果如何?
(1)MOV CL,[BX+20H][SI]
解:EA= BX+20H+SI=56H
PA=DS*16+EA=91D0H+56H=9226H
CL=(09226H)=F6H
(2)MOV[BP][DI],CX
解:EA= BP+DI=56H
PA=SS*16+EA=1E4F6H
(1E4F6H)= 5678H
(3)LEA BX,[BX+20H][SI]
MOV AX,[BX+2]
解:BX= BX+20H+ SI=0056H
EA= BX+2=58H
PA=DS*16+EA=91D0H+58H=9228H
AX=(09228H)=1E40H
(4) LDS SI,[BX][DI]
MOV[SI],BX
解:EA= BX+DI=56H, PA=DS*16+EA=91D0H+56H =9226H
SI=(09226H)=00F6H, DS=(09228H)=1E40H
EA= SI=00F6H, PA=DS*16+EA=1E400H+00F6H=1E4F6H
(1E4F6H)= BX=0024H
(5) XCHG CX,[BX+32H]
XCHG[BX+20H][SI],AX
解:EA= BX+32H=56H, PA=DS*16+EA=91D0H+56H =9226H
(09226H)= CX=5678H , CX=(09226H)=00F6H
EA= BX+20H+SI=56H,PA=DS*16+EA=91D0H+56H =9226H
AX=(09226H)=5678H ,(09226H) = AX=1234H
3.2设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1350H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=OE7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,
(21351H)=51H
下列各指令都在此环境下执行,在下列各小题的空格中填入相应各指令的执行结果。
(1)MOV AX,1352H AX=
解:AX=1352H
(2)MOV AX,[1352H] ;AX=
解:PA=DS*16+EA=10000H+1352H=11352H
(11352H)=0FFH,(11353H)=26H
AX=26FFH
(3)MOV 0150H[BX],CH
(11350H)= (11351H)=
解:EA=BX+0150H=1350H
PA=DS*16+EA=10000H+1350H=11350H, CH=33H (11350H)=33H, (11351H)的值不变,(11351H)=3CH (4) MOV AX,0150H[BP]
AX=____
解:EA= BP+0150H=1350H
PA=SS*16+EA=20000H+1350H=21350H
AX=5188H
(5)POP AX ;AX=____,SP=____
解:EA= SP=1350H
PA=SS*16+EA=20000H+1350H=21350H
AX=5188H, SP=1350H+2H=1352H
(6)ADD[SI],CX
(11354H)=____,(11355H)=____,SF=____
ZF=____,PF=____,CF=____,OF=____
解:EA=SI=1354H, PA=DS*16+EA=10000H+1354H=11354H
CX=339AH, (11354H)=52H,(11355H)=OE7H
0E752H+339AH=11AECH->(11355H): (11354H)
(11354H) =0ECH, (11355H)= 1AH
(11354H) =0ECH, (11355H)= 1AH
CF=1,ZF=0,
PF(低八位奇偶校验):0ECH= 11101100B PF=0
SF(最高位状态),1H=0001B SF=0
OF(溢出标志)
0E752H=1110011101010010B
339AH=11001110011010B
1110011101010010
+ 11001110011010
10001101011101100
(7)SUB BH,0150H[BX][SI]
BH=____,SF=____,ZF=____,PF=____,CF=____,0F=____
解:EA=0150H+BX+SI=26A4H;PA=DS*16+EA=10000H+26A4H=126A4H;
(126A4H)=9DH,BH=12H
BH=75H, SF=0,ZF=0,PF=0, CF=1 ,OF=0
(8)INC BYTE PTR 0152H[BX]
(11352H)=____,(11353H)=____,CF=____
解:EA=0152H+ BX= 1352H,PA=DS*16+EA=11352,
(11352H)=0FFH,
(11352H)=00H, (11353H)= 26H, 不影响CF
(9)INC WORD PTR 0152H[BX]
(11352H)=____,(11353H)=____,CF=____
解:EA=0152H+ BX= 1352H, PA=DS*16+EA=11532,
(11352H)=0FFH, (11353H)= 26H
(11352H)=00H, (11353H)= 27H, 不影响CF
(10)SAR BYTE PTR 0150H[BX],1
(11350H) =____,CF=____,OF=____
解:EA=BX+0150H=1350H
PA=DS*16+EA=11350H,
(11350H)=0A5H= 10100101B
11010010B=0D2H, CF=1,OF=0
(当移位数为1是,最高位不变则OF=0)
(11)SAL BYTE PTR 0150H[BX],1
(11350H)=____,CF=____,OF=____
解:EA=BX+0150H=1350H,PA=DS*16+EA=11350,
(11350H)=0A5H= 10100101B
01001010B=4AH, CF=1,OF=1
3、3 设下列各转移指令的第一字节在内存中的地址为CS=2000H和IP=016EH,且环境均为DS=6000H,BX=16C0H,(616C0H)=46H,(616C1H)=01H,(616C2H)=00H,(616C3H)=30H,(61732H)=70H,(61733H)=17H。
写出下列各无条件转移指令执行后CS和IP值。
个指令左首的16进制编码是该指令的机器码。
指令中的目的地址用相应的标号表示。
(1)EBE7 JMP SHOURT AGAIN
(2)E90016 JMP NEARPTR OTHER
(3)E3 JMP BX
(4)EA46010010 JMP FAR PROB
(5)FF67 JMP WORD PTR 0072H[BX]
(6)FFEB JMP DWORD PTR [BX]
解:
(1)E7补码为-19,IP目标=IP源+2+EA(即-19)
=016EH+2-19=0157H
因为段内寻址,所以cs=2000H不变
(2)IP目标=IP源+3 +EA=016EH+3+1600H=1771H
因为段内寻址所以cs=2000H不变
(3)IP=16C0H, 因为段内寻址所以cs=2000H不变
(4)段间寻址,有机器码可看出IP=0146H CS=3000H
(5)段内寻址,所以CS=2000H不变
DS*16+0072H+BX=61732H
(61732H)=70H,(61733H)=17H
IP=1770H
(6)PA=DS*16+BX=60000H+16C0H=616C0H
(616C0H)=46H (616C1H)=01H IP=0146H
(616C2H)=00H (616C3H)=30H CS=3000H 3.4 阅读下列各小题的指令序列,在后面空格中填入该指令序列的执行结果。
(1) MOV BL,85H
MOV AL,17H
ADD AL,BL
DAA
AL=____,BL=____,CF=____
解:17H+85H=9CH AL
DAA 压缩的BCD码加法十进制调整指令。
(AL的低4位>9或AF=1,AL AL+06H,AF1;
AF是辅助进位标志用以标志D3向D4的进位
AL的高4位>9或CF=1,AL AL+60H,CF1;)
AL=9CH+ 06H=0A2H
AL=0A2H+60H=02H, BL=85H CF=1
(2) MOV AX,BX;NOT AX;ADD AX,BX;lNC AX
AX=____,CF=____
解:lNC不影响标志位AX=0000H,CF=0
(3)MOV AX,0FF60H ;STC ;MOV DX,96
XOR DH,0FFH ;SBB AX DX
AX=____,CF=____
解:XOR 命令会使CF0,OF0
96=60H,AX=0000H, CF=0
(4)MOV BX,0FFFEH ;MOV CL,2;SAR BX,CL
BX=____,CF=____
解:0FFFEH=1111111111111110B
1111111111111111B,CF=0
1111 1111 1111 1111B,CF=1
3.5 阅读分析下列指令序列
ADD AX,BX
JNO Ll
JNO L2
SUB AX,BX
JNC L3
JNO L4
JMP L5
(1)AX=14C6H,BX=80DCH
解:ADD AX,BX
OF=0,CF=0;L1
(2)AX=0B568H,BX=5487H
解:ADD AX,BX
OF=0,CF=1;L1
(3)AX=42C8H,BX=608DH
解:ADD AX,BX
CF=0 ,OF=1, AX=0AC55H
SUB AX,BX;CF=0,OF=0;L3
(4) AX=0D023H,BX=9FDOH
解:ADD AX,BX
OF=1,CF=1,AX=6FF3H
SUB AX,BX ;CF=1,OF=1;L5
(5)AX=9FDOH,BX=0D023H
解:ADD AX,BX
OF=1,CF=1,AX=6FF3H
SUB AX,BX ;CF=1,OF=1;L5
3.6 AND AL,AL
JZ BRCHl
RCR AL,1
JZ BRCH2
RCL AL,1
INC AL
JZ BRCH3
上述程序运行后,试回答
(1)当AL =00H时,
程序转向BRCHl
(2)当AL =01H时,
程序转向BRCH2
(3)当AL =0FFH时,程序转向BRCH3
3.7完成下列操作,选用什么指令:
(1)将AX的内容减去0520H,和上次运算的借位;
SBB AX,0520H
(2)将变量名TABL的段地址送AX。
MOV AX SEG TABL
3.8 D1 DB 20H DUP(?)
D2 DW D1
请写出用一条指令实现取D1的偏移地址SI中的三种方法。
(A) LEA SI,D1
(B) MOV SI,OFFSET D1
(C) MOV SI,D2
3.9 程序段1 程序段2
MOV AX , 147BH MOV AX , 99D8H
MOV BX , 80DCH MOV BX , 9847H
ADD AX , BX SUB AX , BX
JNO L1 JNC L3
JNC L2 JNO L4
上述两个程序段执行后,分别转移到哪里?
解:1) L1
2) L3
3.10 MOV BX , 0FFH
AND BX , 0FFFH
OR BX , 0F0FH
XOR BX , 00FFH
上述程序段运行后,BX= 0F00H,CF= 0
(注意:对于8086 的加法和减法操作,使用CF 来标识将两个操作数看成无符号数时计算是否发生了溢出,而OF 则标识将两个操作数看成有符号数时的情况。
计算CF 位时,加法操作是直接将最高位的进位赋给CF,而对于减法操作而言,转换后的补码加法有进位表示实际进行的减法没有借位(即没有溢出),因此需要将最高位进位取反以后赋给CF;对于OF 位的计算则是相同的,通过将最高位的进位和次高位的进位进行异或运算,结果赋给OF (当然也可以使用双符号位来进行计算)。
当然对于减法操作而言,我们也可以简单地认为:对于CF 位,将减数与被减数都看成无符号数,如果减数>被减数,则CF=1,否则CF 为0;对于OF 位,若两个数的符号相反,而结果的符号与减数相同则OF=1,其他情况OF=0。
)3.11 CMP AX , BX
JGE NEXT
XCHG AX , BX
NEXT: CMP AX , CX
JGE DONE
XCHG AX , CX
DONE: ….
试回答:
(1)上述程序段执行后,原有AX 、BX 、CX中最大数存放在哪个寄存器中?
最大数在AX中
(2)这3个数是带符号数还是无符号数?
是带符号数。