35. 什么是Pentium Ⅲ处理器序列号?使用序列号的优缺点是什么? 36. 简述ARM系统的基本概念,列举其应用情况。 37. 64位计算机系统的优势何在?
第三章思考题与习题
1、试分别说明下列指令中源操作数和目的操作数采用的寻址方式: 目的操作数 源操作数 (1) MOV BX,7FFFH 寄存器 立即寻址 (2) MOV DS,DX 寄存器 寄存器寻址 (3) OR CH,[200H] 寄存器 直接寻址 (4) ADC [DI],AX 寄存器间接 寄存器 (5) MOV SS:[1000H],CH 直接寻址 寄存器 (6) SUB [BX][SI],1 基址变址 立即
(7) ADD AX,10H [BX][SI] 寄存器 相对基址变址 (8) PUSH ES 隐含 寄存器 (9) CMP [BP][DI],DL 基址变址 寄存器 (10) CLC 隐含
2、若(BX)=1123H,(SI)=1968H,位移量D=0313H,(DS)=1971H,试确定由这些寄存器和下列寻址方式产生的有效地址和物理地址:
(1) 立即寻址:立即数寻址的有效地址是当前IP的内容;
直接寻址:若使用位移量D=0313H进行,则有效地址为0313H; (2)使用BX的寄存器寻址时,操作数在BX寄存器中,因此无有效地址; 用BX的寄存器间接寻址; 有效地址在BX寄存器中,即有效地址=1123H (3) 用BX的寄存器相对寻址; 有效地址=(BX)+D=1123H+0313H (4) 用BX和SI的基址变址寻址; 有效地址=(BX)+(SI) (5) 用BX和SI的相对基址加变址寻址。 有效地址=BX+D+SI 3、连续执行以下指令,并在空格中填写执行指令的结果。 MOV AX,2060H AL=60H AH= 20H CF=0 MOV DS,AX DS= 2060H AH= 20 CF=0 ADD AL,AH AL= 80H AH= 20H CF=0 INC AX AL= 81H AH= 20H CF=0 MOV DX,512 DL= 00H DH= 01H CF=0 SUB AX,DX AL= 81H AH= 18H CF=0
4、假设标志寄存器各标志初始值为0,分别单独执行如下指令后,请指出标志寄存器CF、AF、ZF、SF、OF的值。 CF AF ZF SF OF (1) MOV AX,BX 0 0 0 1 0 (2) XOR AX,AX 0 0 1 0 0 (3) MOV AX,1971H 0 0 0 0 0
ADD AX,1968H 1 1 1 0 0 (4) MOV CX,0FFFFH 0 0 0 1 0
INC CX 0 1 0 1 0 (5) MOV BX,0 0 0 1 0 0
SUB BX,80H 1 1 0 1 0
(6) MOV DX,1234H
SHL DX,1 1 0 0 1 0
5、编写程序段以实现如下功能:
(1) 将立即数17H送DL,立即数7FH送AL。 MOV DL,017H MOV AL,07FH (2) 将立即数1234H送AX,5678H送DX。 MOV AX,1234H MOV DX,5678H (3) 将立即数5411H送存储单元1117H中。
6、编写程序实现将十进制数59与27相加。 MOV AL,59H ADD AL,68H DAA
MOV BL,AL 7、已知下列指令运行前有关寄存器状态如下,AX=C372H,BX=0000H,SI=4400H,DI=2300H,SP=4400H,CX=0003H,DS=ES=SS=5000H,C=1,D=0。有关存储单元内容如下:(54400H)=A2H,(54401H)=73H,(54402H)=00H,(54403H)=F2H。请指出下列指令单独执行后有关寄存器及内存单元的值,并判断是否 标志位SF,ZF,CF,OF。若影响则写出SF,ZF,CF,OF的值。 (1)POP AX
(2)MOV [BX+SI+10H],AH (3)DEC WORD PTR[SI+2] (4)ADC AL,BH
(5)OR AL,[BX+SI-1] (6)SHR AH,1 (7)MOVSW
(8)CALL BX(段内间接调用)
8、编写程序实现下述功能:
(1)将BX寄存器的低8位清零,其余位不变。 AND BX,0FF00H (2)将DL寄存器的最高位置1,其余位不变。 OR DL,80H (3)将CL寄存器的高4位保持不变,低4位取反。 XOR CL,0FH (4)测试CX中的最低位,当最低位为0时将AL置1,否则AL置0。
答案:
TEST JZ MOV HLT L1: MOV
HLT
CX ,01H L1 AL ,0 AL , 1
(5)测试SI,如果SI为奇数将AL置1,否则AL置0。
答案:
TEST SI ,01H 备注:最低位为1为奇数,为0 为偶数 JNZ L1
MOV AL ,0 HLT
L1: MOV AL , 1
HLT
9、若32位二进制数存放于DX和AX中,其中DX存放高16位,AX存放低16位,试利用移位指令实现如下功能:
(1) 假设该32位数为无符号数,将其分别乘以2和除以2。 (2) 假设该32位数为带符号数,将其分别乘以2和除以2。
10、利用字符串操作指令,将1000H至10FFH单元的内容全部清零。 MOV CX,00FFH MOV DI,1000H
MOV AL,00H 或置1 MOV AL,01H REP STOS DS:DI
11、编程将存放在1000H和1002H单元中的两个16位的无符号数相乘,并将结果存放在地址为2000H开始的单元中。 MOV AX,(1000H) MOV BX,(1002H) MUL BX
MOV (2000H),AX MOV (2002H),DX
12、判断下列指令正误,如果错误请指出原因。
(1) MOV CH,300 错,源操作数为字类型,目的操作数为字节类型,二者不一致 应为:MOV CX,300 ????? (2) XOR DL,BH 对
(3) ADD 100,AH 错,目的操作数使用了立即数,在指令中一般不允许。
应改为:MOV DS:[100],AL ????
(4) MOV DS,2200H 错,立即数不能直接送DS寄存器 应为:MOV AX,2200H (5) POP CS 错,不能将栈顶数据弹至CS中。
(6) XCHG DX,BX 错,目的操作数AX是隐含的,不能在指令中写出。
应改为:XCHG BX
(7) IN AL,250H 错,源操作数必须为口地址
(8) MOV [BX][SI],[DI] 错,两操作数不能同时为寄存器 (9) LEA AX,BX 错,源操作数必须为地址标号 (10) MOV CX,[BX+20H] 对
13、在8086/8088中,哪些指令可以用来修改CS和IP的值? 答:用jmp指令来改变cs.ip的值
若想修改cs.ip的内容,。jmp 段地址,偏移地址的指令完成。 jmp2ae3:3 cs=2ae3h. ip=0003h
(jmp 段地址:偏移地址)的功能是:用指令中给出的段地址修改CS,偏移地址修改IP
14、如果AL=8FH,则执行CBW指令后,AX =0FF8FH 。
注解:CBW指令:在8086中CBW指令将AL的最高有效位D7扩展至AH,
即:如果AL的最高有效位是0,则AH = 00;AL的最高有效位为1,则AH = FFH。AL不变。
问题:因为AL的最大有效位是1,则AH=FFH AX=0xFFC9H
15、假定DS=212AH,CS=0200H,IP=2BC0H,BX=1200H,位移量D=5119H,(224A0H)=0600H,(275B9H)=098AH,试确定JMP指令的转移地址。 1) 段内直接寻址:CS=0200H, IP= H。
2) 使用BX及寄存器寻址方式的段内间接寻址:CS=0200H , IP=BX=1200H。 3) 使用BX及寄存器相对寻址方式的段内间接寻址:CS=0200H, IP=BX+D H。 16、假设IP = 3D4BH,CS=408FH,SP=0F17CH,执行CALL 2000:008BH后,
SP= 4B,[SP]= 3D ,[SP+2]= 40H 。
17、在20100H和20101H单元中分别存放74H,83H(表示条件转移指令JZ),若CS=2000H,ZF=1,则执行完这条指令后,IP = 。
第四章思考题与习题
1、假设程序中的数据定义如下: PARTNO DW ?
PNAME DB 16 DUP(?) COUNT DD ?
PLENTH EQU $ -PARTNO 则PLENTH= ,它的意义是 。 2、假设有下面的数据定义: BUFFER DB ?
STRING DW 20 DUP(?) TABLE DB ?ABCD?
则下列各条MOV指令单独执行后,有关寄存器的内容是: (1)MOV AX,TYPE BUFFER AX = 。 (2)MOV AX,TYPE STRING AX = 。 (3)MOV AX,LENGTH STRING AX = 。 (4)MOV AX,LENGTH TABLE AX = 。 (5)MOV AX,SIZE STRING AX = 。
3、计算下列程序分别执行后AX寄存器的内容。 (1) MOV AX,0 MOV BX,2345H TEST BX,1000H JZ NEXT INC AX
NEXT: HLT
(2) MOV AX,0 XOR BX,BX AGAIN:INC BX ADD AX,BX
相关推荐: