微机原理与接口技术期末综合复习题

上传人:xzh****18 文档编号:35520812 上传时间:2018-03-16 格式:DOC 页数:22 大小:89KB
返回 下载 相关 举报
微机原理与接口技术期末综合复习题_第1页
第1页 / 共22页
微机原理与接口技术期末综合复习题_第2页
第2页 / 共22页
微机原理与接口技术期末综合复习题_第3页
第3页 / 共22页
微机原理与接口技术期末综合复习题_第4页
第4页 / 共22页
微机原理与接口技术期末综合复习题_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《微机原理与接口技术期末综合复习题》由会员分享,可在线阅读,更多相关《微机原理与接口技术期末综合复习题(22页珍藏版)》请在金锄头文库上搜索。

1、微计算机原理与接口技术复习题(微计算机原理与接口技术复习题(4 4)8086 指令系统及寻址方式指令系统及寻址方式1. 根据下列要求编写一个汇编语言程序::(1)代码段的段名为 COD_SG(2)数据段的段名为 DAT_SG(3)堆栈段的段名为 STK_SG(4)变量 HIGH_DAT 所包含的数据为 95(5)将变量 HIGH_DAT 装入寄存器 AH,BH 和 DL(6)程序运行的入口地址为 START答案:DAT_SG SEGEMNTHIGH_DATDB 95DAT_SG ENDS;STK_SG SEGMENTDW64 DUP(?)STK_SG ENDS;COD_SG SEGMENTMA

2、INPROCFARASSUMECS: COD_SG, DS: DAT_SG, SS: STK_SGSTART: MOVAX, DAT-SGMOVDS, AXMOVAH, HIGH_DATMOVBH, AHMOVDL, AHMOVAH, 4CHINT21HMAIN ENDPCOD_SG ENDSEND START2. 指出下列程序中的错误:STAKSGSEGMENTDB 100 DUP(?)STA_SG ENDSDTSEG SEGMENTDATA1 DB ?DTSEG ENDCDSEG SEGMENTMAINPROCFARSTART: MOVDS,DATSEGMOVAL,34HADDAL,4FH

3、MOVDATA,ALSTARTENDPCDSEG ENDSEND答案:改正后:STAKSGSEGMENTDB100 DUP(?)STAKSGENDSDTSEGSEGMENTDATA1DB ?DTSEGENDSCDSEG SEGMENTMAINPROCFARASSUME CS: CDSEG, DS: DTSEG, SS: STAKSGSTART:MOVAX, DTSEGMOVDS, AXMOVAL, 34HADDAL, 4FHMOVDATA1, ALMOVAH, 4CHINT21HMAINENDPCDSEG ENDSENDS3. 将下列文件类型填入空格:(1) .obj (2) .exe (3)

4、 .crf (4) .asm (5) .lst (6) .map编辑程序输出的文件有_;汇编程序输出的文件有_;连接程序输出的文件有_。答案:编辑程序输出文件: (4)汇编程序输出文件: (1), (3), (5) 连接程序输出文件: (2), (6)4. 下列标号为什么是非法的?(1) GET.DATA (2) 1_NUM (3) TEST-DATA(4) RET (5) NEW ITEM答案:非法标号: (1)因为.只允许是标号的第一个字符(2)第一个字符不能为数字 (3)不允许出现-(4)不能是保留字,如助记符 (5)不能有空格5. 下面的数据项定义了多少个字节?DATA_1 DB 6

5、DUP(4 DUP(0FFH)答案:24 字节6. 对于下面两个数据段,偏移地址为 10H 和 11H 的两个字节中的数据是一样的吗?为什么?DTSEG SEGMENT|DTSEG SEGMENTORG10H |ORG10HDATA1 DB 72H |DATA1 DW 7204HDB 04H |DTSEG ENDSDTSEG ENDS|答案:不一样. 分别是 72H, 04H 和 04H, 72H. 存储字时低 8 位存在低字节,高 8 位存在高字节.7. 下面的数据项设置了多少个字节?(1) ASC_DATADB 1234(2) HEX_DATA DB 1234H答案:(1) 设置了 4 个

6、字节 (2) 设置了 2 个字节8. 执行下列指令后, AX 寄存器中的内容是什么?TABLE DW 10,20,30,40,50ENTRY DW 3.MOVBX,OFFSET TABLEADDBX,ENTRYMOVAX,BX答案:(AX)=409. 指出下列指令的错误:(1) MOV AH,BX(2) MOV SI,BX(3) MOV AX,SIDI(4) MOV AX,BXBP(5) MOV BX,ES:AX(6) MOV BYTE PTRBX,1000(7) MOV AX,OFFSET SI(8) MOV CS,AX(9) MOV DS,BP答案:(1) 源、目的字长不一致(2) 源、目

7、的不能同时为存贮器寻址方式(3) 基址变址方式不能有 SI 和 DI 的组合(4) 基址变址方式不能有 BX 和 BP 的组合(5) 在 8086 寻址方式中,AX 不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式(6) 1000 超出一个字节的表数范围(7) OFFSET 只用于简单变量,应去掉(8) CS 不能作为目的寄存器(9) 段地址不能直接送入数据段寄存器10. DATASEGMENTTABLE_ADDRDW 1234HDATAENDS.MOVBX, TABLE_ADDRLEABX, TABLE_ADDR请写出上述两条指令执行后, BX 寄存器中的内容。答案:MOVBX,

8、TABLE_ADDR; 执行后(BX)=1234H LEABX,TABLE_ADDR; 执行后(BX)=OFFSET TABLE_ADDR11. 设(DS)=1B00H, (ES)=2B00H, 有关存储器地址及其内容如右图所示,请用两条指令把 X 装入 AX 寄存器。 1B00:2000H8000H1B00:2002H2B00H.2B00:8000HX答案:LES BX, 2000HMOV AX, ES: BX12. 变量 DATAX 和 DATAY 定义如下:DATAX DW 0148HDW 2316HDATAYDW 0237HDW 4052H按下述要求写出指令序列:(1)DATAX 和

9、DATAY 中的两个字数据相加, 和存放在 DATAY 和 DATAY+2 中。(2)DATAX 和 DATAY 中的两个双字数据相加, 和存放在 DATAY 开始的字单元中。(3)DATAX 和 DATAY 两个字数据相乘(用 MUL) 。(4)DATAX 和 DATAY 两个双字数据相乘(用 MUL) 。(5)DATAX 除以 23(用 DIV) 。(6)DATAX 双字除以字 DATAY(用 DIV) 。答案:(1)MOVAX, DATAXADDAX, DATAYMOVBX, DATAX+2ADDBX, DATAY+2MOVDATAY, AXMOVDATAY+2, BX(2)MOVAX,

10、 DATAXADDDATAY, AXMOVAX, DATAX+2ADCDATAY+2, AX(3)MOVAX, DATAXMULDATAYMOVDATAY,AXMOVDATAY+2,DX(4)MOVAX,WORD PTR DATAXMOVBX,WORD PTR DATAYMULBXMOVRESULT,AXMOVRESULT+2,DXMOVAX,WORD PTR DATAXMOVAX,WORD PTR DATAY+2MULBXADDRESULT+2,AXADCRESULT+4,DXMOVAX,WORD PTR DATAX+2MOVBX,WORD PTR DATAYMULBXADDRESULT+2

11、,AXADCRESULT+4,DXMOVAX,WORD PTR DATAX+2MOVBX,WORD PTR DATAY+2MULBXADDRESULT+4,AXADCRESULT+6,DX(5) MOVAX, DATAXMOVBL, 23DIVBLMOVBL,AHMOVAH, 0MOVDATAY, AX;存放商MOVAL,BLMOVDATAY+2, AX;存放余数(6)MOVAX, DATAXMOVDX, DATAX+2DIVDATAY MOVDATAY, AXMOVDATAY+2, DX13. 试分析下面的程序段完成什么操作?MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLS

12、HRBL,CLORDL,BL答案:将 DX: AX 中的双字左移 4 位(乘 16)14. 用其他指令完成和下列指令一样的功能:(1) REP MOVSB(2) REP LODSB(3) REP STOSB(4) REP SCASB答案:(1) LOOP1:MOVAL,BYTE PTR SIMOVES:BYTE PTR DI, ALINCSI或: DECSIINCDI或: DECDILOOPLOOP1(2) LOOP1:MOVAL, BYTE PTR SIINCSI或: DECSILOOPLOOP1(3) LOOP1:MOVES:BYTE PTR DI, ALINCDI或: DECDILOOP

13、LOOP1(4) LOOP1:CMPAL,ES:BYTE PTR DIJEEXITINCDI或: DECDILOOPLOOP1EXIT:15.编写程序段, 比较两个 5 字节的字符串 OLDS 和 NEWS, 如果 OLDS 字符串与 NEWS 不同, 则执行NEW_LESS, 否则顺序执行程序。答案:LEASI, OLDSLEADI, NEWSMOVCX, 5CLDREPZCMPSBJNZNEW_LESS16. 假定 AX 和 BX 中的内容为带符号数, CX 和 DX 中的内容为无符号数, 请用比较指令和条件转移指令实现以下判断:(1) 若 DX 的值超过 CX 的值,则转去执行 EXCE

14、ED(2) 若 BX 的值大于 AX 的值,则转去执行 EXCEED(3) CX 中的值为 0 吗? 若是则转去执行 ZERO(4) BX 的值与 AX 的值相减, 会产生溢出吗? 若溢出则转 OVERFLOW(5) 若 BX 的值小于 AX 的值,则转去执行 EQ_SMA(6) 若 DX 的值低于 CX 的值,则转去执行 EQ_SMA 答案:(1) CMP DX, CXJAEXCEED(2) CMP BX, AXJGEXCEED(3) CMP CX, 0JEZERO(4) SUB BX, AXJOOVERFLOW(5) CMP BX, AXJLEQ_SMA(6) CMP DX, CXJBEQ

15、_SMA17. 假如在程序的括号中分别填入指令:(1) LOOP L20(2) LOOPNE L20(3) LOOPE L20试说明在三种情况下, 当程序执行完后, AX、BX、CX、DX 四个寄存器的内容分别是什么?TITLEEXLOOP.COMCODESG SEGMENTASSUME CS:CODESG, DS:CODESG. SS:CODESGORG100HBEGIN:MOVAX,01MOVBX,02MOVDX,03MOVCX,04L20:INCAXADDBX,AXSHRDX,1( )RETCODESG ENDSENDBEGIN答案: (1) (AX)= 5 (BX)= 16 (CX)=

16、 0 (DX)= 0(2) (AX)= 2 (BX)= 4 (CX)= 3 (DX)= 1(3) (AX)= 3 (BX)= 7 (CX)= 2 (DX)= 018. 变量 N1 和 N2 均为 2 字节的非压缩 BCD 数码,请写出计算 N1 与 N2 之差的指令序列。答案:MOVAX, 0MOVAL, N1+1SUBAL, N2+1AASMOVDL, ALMOVAL, N1SBBAL, N2AASMOVDH, AL19. 有两个 3 位的 ASCII 数串 ASC1 和 ASC2 定义如下:ASC1DB 578ASC2DB 694ASC3DB 0000请编写程序计算 ASC3ASC1+ASC2。答案:CLCMOVCX, 3MOVBX, 2BACK:MOVAL, ASC1BXADCAL,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 计算机原理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号