微原模拟题答案修订(马)_第1页
微原模拟题答案修订(马)_第2页
微原模拟题答案修订(马)_第3页
微原模拟题答案修订(马)_第4页
微原模拟题答案修订(马)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、练习题一一.单项选择题1. DABDCB 6. BADAD 11. DD二. 填空题1. Central Processing Unit,中央处理器或中央处理单元2. 0010 0111B或27H或39, 13. 32,324. 25. 20, 4位(A19-A16) ,(S6-S3)状态6. 0ffffh 10000H, 16 7. 20, 00000至0fffffh ,8. 微处理器,微型计算机,微型计算机系统三.判断题1. 对错对对对 6. 错错对四.请将下列左边的项和右边的解释联系起来1. D2. G3. E4. B 5. H6. I7. A8. J9. F10. C五.简答题1. 8

2、086 微处理器的标志寄存器的标志有哪些?状态标志位和控制标志位有什么区别?答:状态标志位有6个:零标志-ZF,符号标志-SF,进位标志-CF,溢出标志-OF,辅助进位标志-AF,奇偶标志-PF。控制标志位有3个:方向标志-DF,中断允许标志-IF,陷阱标志-TF。状态标志位用来反映指令执行的结果,通常是由CPU根据指令执行结果自动设置的。控制标志位由程序通过执行特定的指令来设置的,以控制指令的操作方式。2. Cache是什么意思? L1Cache和L2Cache有什么不同?答:Cache(高速缓冲存储器)是一种存取速度比内存更快的存储设备,用于缓解CPU和主存储器之间速度不匹配的矛盾,进而改

3、善整个计算机系统的性能。L1 Cache被集成到CPU内部,与CPU同步运行; L2 Cache是单独的集成电路芯片,被安装在主板上,比内存速度快,通常以CPU的半速运行。3. 8086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么?答: 两部分:总线接口部件(BIU)和执行部件(EU)总线接口部件(BIU)的功能:根据执行单元EU的请求完成CPU与存储器或IO设备之间的数据传送。由下列几部分组成:(1)4个16位段地址寄存器,即:代码段寄存器CS,数据段寄存器DS,附加段寄存器ES,堆栈段寄存器SS (2)16位指令指针寄存器IP;(3)地址形成逻辑(20位的地址加法器);(

4、4)6字节的指令队列;(5) 总线控制逻辑。 执行部件(EU)功能:从指令对列中取出指令,对指令进行译码,发出相应的传送数据或算术的控制信号接受由总线接口部件传送来的数据或把数据传送到总线接口部件进行算术运算。由下列几部分组成:(1)4个16位通用寄存器,即:累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX;(2)4个16位专用寄存器,即基数指针寄存器BP,栈顶指针寄存器SP,源变址寄存器SI,目的变址寄存器DI;(3)标志寄存器(FLAGS);(4)算术逻辑部件(ALU);(5)EU的控制系统。4. 数值协处理器和浮点处理单元有何相同之处和不同之处?答:数值协处理器和浮点处理单元的

5、功能是一样的,用于复杂的数学运算。不同之处在于数值协处理器是一个独立的芯片,通过总线与微处理器(或主处理器)相连,用于80386及以前低档CPU的微机系统。而浮点处理单元是主处理器芯片的一个功能单元,从80486开始数值协处理器的功能被集成在CPU内部了。5.字长8位,采用定点整数补码表示,写出能表示的最大数、最小数、最大非0负数、最小非0正数的二进制代码序列和十进制真值。答:最大数:0111 1111,真值:127最小数:1000 0000,真值:-128最大非零负数:1111 1111,真值:-1最小非零正数:0000 0001,真值:1六. 说明下列指令中源操作数的寻址方式,假设buff

6、是一个字变量。 1. mov ax,buffbxl;寄存器相对寻址 2. mov ax,bx+di;基址+变址寻址 3. mov ax,bx+di+2000h;相对基址+变址寻址 4. mov ax,buffsi+di;相对基址+变址寻址 5. mov ax,2000h;立即数寻址 6. mov ax,buff;直接寻址 7. mov ax,bx;寄存器寻址 8. mov ax,bx;寄存器间接寻址 9. mov ax,bx+2000h;寄存器相对寻址练习题二一. 选择题1. DCACD6. BACDC二. 填空题1. offset2. 233, -233. 0FFh或 11111111 ,0

7、FFFFH或11111111 111111114. 645. 存储器或I/O接口未准备好6. 0, 17. 数据段,堆栈段8. SP,SI,DI9. 73C00H,73800H三. 判断题1. 错对错错错6. 错对对四计算题1. 采用定点整数表示,字长8位, 最高位为符号位,写出下列各数的原码、反码和补码 0原=00000000;0反=00000000;0补=00000000; 127原=01111111;127反=01111111;127补=01111111; -128补=10000000;(8位-128无原码和反码) -15原=10001111;-15反=11110000;-15补=111

8、10001;2. 采用定点小数表示,字长8位,含1位符号位,写出下列各数的原码、反码、补码 0.10011原=0.1001100;0.10011反=0.1001100;0.10011补=0.1001100; 0.10101原=0.1010100;0.10101反=0.1010100;0.10101补=0.1010100;-0.01110原=1.0111000;-0.01110反=1.1000111;-0.01110补=1.1001000;-0.10011原=1.1001100;-0.10011反=1.0110011;-0.10011补=1. 0110100;3. 字长8位,含一位符号位,计算X

9、补 +Y补,并判断是否溢出。 X补 =10001000Y补=11001111X补+Y补=01010111溢出 X补 =01001010 Y补=00111110 X补+Y补=10001000 溢出(两个正数相加,结果为负数) X补 =10011001 Y补=01101110 X补+Y补=11110111 X补 =01110011 Y补=11010110补+补=01001001无溢出(一正一负相加,绝对值相减,不会溢出,进位位丢掉)4.25.2111001.001B=0.11001001×25 25.21的浮点表示为:0000101 0110010015. 无进位; 有进位; 无借位;

10、有借位;6. 将下列机器数按要求进行算术移位和逻辑移位 X原 = 00000110Y原 = 10010011 X原 和Y原 左移两位 算术左移两位:X原=00001100 Y原=11001100 逻辑左移两位:X=00001100 Y=01001100 X原 = 00000100Y原 = 10011000 X原 和Y原 右移两位算术移位:X原=00000001 Y原=10000110逻辑移位: X=00000001 Y=01001100 X补= 00000011Y补 = 11110101 X补 和Y补 左移一位 算术移位:X补=00000110 Y补=11101010 逻辑移位: X =000

11、00110 Y =11101010 X补= 00010100Y 补= 11101100 X 补和Y 补 右移一位算术移位:X补=00001010 Y补=11110110逻辑移位:X=00001010 Y=01110110五简答题1. 答:两个操作数的长度不相等,不能进行数据交换2. 答:若要使某位复位,将该位与零相与;若要使某位置位,将该位与1相或;若要使某位求反,将该位与1相异或;3. 答:物理地址=段基址×10H/16+偏移地址4. 答:既是源操作数也是目的操作数5. 答:为子程序加上必要的注释是为了程序员在调用该程序时容易掌握其功能和调用方法。6. 答:两个无符号数的大小关系需

12、要利用所产生的状态标志CF确定大小,ZF确定是否相等。为了与带符号数区别,无符号数的大小关系用高(Above)和低(LowBelow)来表示。两个无符号数的大小就分成:低于(不高于等于)、不低于(高于等于)、低于等于(不高于)和不低于等于(高于),依次对应4对8条指令:JB(JNAE)、JNB(JAE)、JBRJBE(JNA)、JNBE(JA)。两个带符号数的大小关系需要利用所产生的状态标志OF、SF组合,并利用ZF确定是否相等。带符号数的大小关系用大(Greater)和小(Less)来表示。两个有符号数的大小就分成:小于(不大于等于)、不小于(大于或等于)、小于等于(不大于)和不小于等于(大

13、于),依次对应4对8条指令:JL(JNGE)、JNL(JGE)、JLE(JNG)、JNLE(JG)。六程序分析1. 假设当前SP=00B0H,说明下面每条指令后,SP等于多少? push ax;SP=00AEH push dx;SP=00ACH push word ptr 0f79h;SP=00AAH pop ax; SP=00ACH pop word ptrbx;SP=00AEH2. 给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态。 mov al,89h;(AL)=89h,各状态标志位不变 add al,al;(AL)=12h,CF=1 ZF=0 SF=0 OF=1 P

14、F=1 add al,9dh;(AL)=AFh,CF=0 ZF=0 SF=1 OF=0 PF=1 cmp al,0bch;(AL)=AFh,CF=1 ZF=0 SF=1 OF=0 PF=1 sub al,al;(AL)=0h, CF=0 ZF=1 SF=0 OF=0 PF=1 dec al ;(AL)=FFh,CF=0 ZF=0 SF=1OF=0 PF=1 inc a1;(AL)=0h, CF=0 ZF=1 SF=0 OF=0 PF=13. 说明下面各条指令的具体错误原因。 mov cx,al;源操作数和目的操作数字长不同 mov al,257;立即数超过255,不能赋给8位寄存器AL mov

15、 50h,ax;立即数不能作为目的操作数 mov es,1234h ;立即数不能传送给段寄存器 mov es,ds; 两个段寄存器之间不能直接进行数据传送4. 假设当前DS=2000H,BX=0100H,SI=0002H,物理地址 20100H20103H的存储单元依次存放12H、34H、56H和78H,21200H21203H依次存放2AH、4CH、B7H和65H。在上述条件下,独立执行下列每条指令后,AX寄存器的内容是什么?各存储单元的内容:(20100) = 12H,(20101) = 34H,(20102) = 56H,(20

16、103) = 78H;(21200) = 2AH,(21201) = 4CH,(21202) = B7H,(21203) = 65H。 mov ax,1200h;AX=1200H mov axBx;AX=0100H mov ax,ds:1200h;AX=4C2AH EA = 1200H PA =(DS)×10HEA = 2000H×10H1200H = 21200H mov ax,bx;AX= 3

17、412H EA = (BX)= 0100H PA =(DS)×10HEA = 2000H×10H0100H = 20100H mov ax,bx+1100h;AX= 4C2AH EA =(BX)1100H = 0100H1100H = 1200H,PA =(DS)×10HEA = 2000H×10H1200H = 21200H mov ax,bx+

18、si;AX= 7856HEA =(BX)(SI)= 0100H0002H = 0102HPA =(DS)×10HEA = 2000H×10H0102H = 20102H mov ax,bxsi+1100h;AX=65B7HEA=100+2+1100=1202 PA=21202模拟练习题三一、 单项选择题1-5 DDBAD 6-10 CBDCA11-12 BA二、 填空题1. 初始化部分 判断体2. TEST ENDP3. 嵌套4. 16B5. 寄存器 直接6. DS SS7.

19、 先进后出(或后进先出)8. 0 0 0三、 判断题1-5 ´ ´ ´ ´ 6-10 ´ ´ 四、 程序分析题1. (1)ax=1e1eh转移(2) al的D7或D0不等于零转移(3) (3)cx<64h转移2. 有一个首地址为ARRAY的20个双字量的数组,说明下列程序段的功能。 答:求该数组的内容之和,保存在total变量中3. mov ah, 1 ;将十进制数1送入ah int 21h ;从键盘输入一个ASCII码字符,其8位二进制代码存放在AL中 xor ah, ah ;ah寄存器清零 mov cx, 8;将8送入cxa

20、gain: shl al, 1;AL寄存器逻辑左移一位,最高位进入CF jnc next;若CF=0,跳转到”next”;若CF=1,程序向下执行 inc ah;ah寄存器自动加1next: loop again;cx¬cx-1, 若cx0,则循环到“again”,否则程序结束程序段功能:从键盘输入一个字符,统计其8位二进制代码中含有“1”的个数,结果存放在ah中4. ;数据段dvar dw 0422h;为变量dvar分配一个字,初值为0422hresult dw ?;为变量result预留一个字的存储空间 ;代码段 mov ax,dvar ;将变量drav的值0422h送寄存器ax

21、 cmp ax,0;将ax的内容与0比较,结果影响标志位 jge nonneg;ax³0,则跳转到”nonneg”;否则顺序执行 neg ax ;将ax中的内容 取补码nonneg: mov result,ax;将ax的内容送给变量result程序功能:将变量dvar的绝对值存放在变量result中五、 编程题1.;数据段dvarDW 57h;代码段mov ax, dvartest ax, 8000hJnz nextltest ax, 1Jnz nextrmov al, “M”Jmp donenextl:mov al,LJmp donenextr:mov al,”R”done:cal

22、l dispc2.asctob poremov cl, 4 shldh, clmoval,dhanddl,0fhoral,dlretasctobendp3.ADD DX, BXADDAL,BX+SIADDBX+082H,CXADD AX,0A0H4.movcx,3again:shlax,1rcldx,1loopagain模拟练习题四一、选择题1-5:CDCCC 6-10:CBBAB 11-12:BC二、填空题1. 处理器每个时间单位可以处理的二进制位数2. DB OFFSET3. BX SI DI BP4. 1234H 5678H5. 字长 时钟频率 集成度6. 逻辑地址7. 指令8. 16

23、DL DH三、程序分析题1. BX=0F00H, CF=02. AX, DX3. 将AX(AL也可以)寄存器的内容乘10或10AX 0190H或4004. 0023H四、程序填空题MAX: MOV BX, (OFFSET ARRAY) MOV AL, BX MOV CX, (COUNT)LOOP1: INC BX CMP AL, BX (JAE LOOP2) MOV AL, BXLOOP2:DEC CX JNZ (LOOP1) MOV (2100H), AL五、编程题1.XOR AX, AXMOV AL, BVAR1CMP AL, 10JGE G1MOV BL, 2MUL BLJMP ENDG

24、1: SUB AX, 10END: MOV BVAR2,AX HLT2.DATA SEGMENT BUF DW 25F1H, DE21H, 8A2AH, 5682H, A95CHDATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTRAT: MOV AX, DATA MOV DS, AX LEA SI, BUF MOV CX, 5 XOR BX, BX XOR DX,DXAGAIN: MOV AX, SI ADD BX, AX ADC DX, 0 ADD SI, 2 LOOP AGAIN MOV SI , BX MOV SI+2, DXCODE ENDS

25、 END START或简单的: mov si,offset BUF mov ax,0 mov dx,0 mov cx,5again: add ax,si adc dx,0 inc si inc si loop again mov si,ax mov si+2,dx hlt3.DATA SEGMENT X DB 95 Y DB 87 Z DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART: MOV AX, DATA MOV DS, AX MOV AL, X ADD AL, Y MOV AH, 0 ADC AH, AH SHR AX, 1

26、MOV Z, AL CODE ENDS END START4. DATA SEGMENT RESULT DB 4 DUP(?)NUMDW 3487HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMOV DX,DATAMOV DS,DXMOV AX,NUMMOV CL,4MOV BL,4MOV SI,OFFSET RESULTLP: CALL HASC MOV SI,DL INC SI SHR AX,CL DEC BL JNZ LPEXIT:MOV AH,4CH INT 21HHASCPROC NEAR MOV DL,AL AND DL,0FH CMP D

27、L,9JA L2ADD DL,30HL1:RETL2:ADD DL,37HJMP L1HASC ENDPCODE ENDSEND START 5. DATAP SEGMENT x DW 125,378 sum DW ? DATAP ENDS CODEP SEGMENT ASSUME CS:CODEP, DS:DATAP START: MOV AX,DATAP MOV DS,AX MOV SI, OFFSET x MOV AX,SI ADD AX,SI+2 MOV sum,AX MOV BX,AX MOV CH,4 MOV CL,4 T1: ROL BX,CL MOV AL,BL AND AL,

28、0FH ADD AL,30H CMP AL,3AH JB T2 ADD AL,07HT2: MOV DL,AL MOV AH,2 INT 21H DEC CH JNZ T1CODEP ENDS END START简单:;数据段 x dw 125,378 sum dw ?; 代码段 mov si,offset x mov ax, si add ax,si+2 mov sum,ax mov bx,ax mov cx,404h t1: rol bx, cl mov al,bl and al,0fh add al,30h cmp al,3ah jb t2 add al,7 t2: mov dl,al

29、mov ah, 2 Int 21h dec ch jnz t1 hlt 6. DATA SEGMENT MYADD1 DB 0FEH, 86H, 7CH, 35H, 68H, 77H MYADD2 DB 45H, 0BCH, 7CH, 6AH, 87H, 90H SUM DB 6 DUP (0) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATAMADD: MOV AX, DATA MOV DS, AX MOV SI, OFFSET MYADD1 MOV DI, OFFSET MYADD2 MOV BX, OFFSET SUM MOV CX, 6 ;循

30、环初值为6 AGAIN: CALL SUBADD ;调用子程序 LOOP AGAIN ;循环调用6次 MOV AX, 4C00H INT 21H ;子程序入口参数:SI, DI, BX 出口参数:SI, DI, BXSUBADD PROC PUSH AX ;保护AX的值 MOV AL, SI ;SI是一个源操作数指针 ADC AL, DI ;DI是另一个源操作数指针 MOV BX, AL ;BX是结果操作数指针 INC SI INC DI INC BX POP AX ;恢复AX的值 RETSUBADD ENDP CODE ENDS END MADD模拟练习题五1、 单项选择题:1. DDACC

31、 6. DDDCB2、 判断题:1. ×××6. ×× 3、 程序分析题:1. AX=69ceh2. 给出下列程序段运行每条指令的执行结果。mov si, 10011100b;SI= 10011100band si, 80h;SI= 80h or si, 7fh;SI= 0ffh xor si, 0feh;SI= 01 h 以下程序段执行后,实现的功能是 ;程序运行后AL= 。3. 首地址为array的20个字的数组,问该段程序完成的功能是 计算20个字量的累加和 。4. Ax=2408hbx=0f4ffh0f461h5. (1)Dat1db

32、89, 25 dup(0)(2) Dat2db 'MY NAME IS HG, 0(3)Dat3db Goog, 10, 13, $(4) Dat4dw 9, 54 dup(?)四、计算(1)、BX 1234H (2)、DI+123H 1113H (3)、BP+DI 1032H (4)、1234H 1234H (5)、BX+345H 1759H (6)、BX+DI+200H 2424H 五、简答题1. 汇编语言程序的开发有哪4个步骤?并说明产生什么输出文件?答:汇编语言开发的4个步骤为:(1)源代码编辑:产生汇编源程序 .asm(2)汇编: 产生目标程序 .obj(3)连接:产生可执行程序 .exe(4)调试运行2. 在808

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论