1、 装 订 线专业班级: 姓 名: 学 号: 密 封 线重 庆 科 技 学 院200 /200 学年第 学期考试试卷课程名称: 微机原理及应用 课程代码: 教学班级: 抽(命)题人: 本卷为 卷,共 21 页,考试方式: 闭卷 ,考试时间: 120 分钟题 号一二三四五六七八九十总 分抽查核人得 分阅卷人一.程序分析题 (共39题,195分)1.1 库中题号:050039 5分分析对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?为什么? DTSEGSEGMENT ORG10H DATA1DB 72H DB 04HDTSEG ENDSDTSEG SEGMENTORG10H
2、DATA1DW 7204HDTSEGENDS第 21 页1.2 库中题号:050038 5分指出下列指令的错误: (1) MOV AX,BXBP (2) MOV BX,ES:AX (3) MOV BYTE PTRBX,10001.3 库中题号:050037 5分指出下列指令的错误:(1) MOV AX,OFFSET SI (2) MOV CS,AX (3) MOV DS,BP1.4 库中题号:050036 5分执行完下列程序后,回答指定的问题。MOV AX,0MOV BX,2MOV CX,50LP:ADD AX,BXADD BX,2LOOP LP问:(1) 该程序的功能是 。 (2) 程序执行
3、完成后,(AX)= 。1.5 库中题号:050035 5分分析汇编语言源程序应该由哪些逻辑段组成?各段的作用是什么?语句标号和变量应具备哪3种属性?1.6 库中题号:050034 5分下面是将内存一字节数据高4位和低4位互换并放回原位置的程序,找出错误并改正。 DATA SEGMENT DD1 DB 23HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,OFFSET DD1 MOV AL,SI MOV CL,4 RCR AL,CL MOV SI,AL MOV AH,4CH INT
4、21HCODE ENDEND START1.7 库中题号:050033 5分写出将首地址为BLOCK的字数组的第6个字送到CX寄存器的指令序列,要求分别使用以下几种寻址方式:(1) 以BX的寄存器间接寻址(2) 以BX的寄存器相对寻址(3) 以BX、SI的基址变址寻址1.8 库中题号:050032 5分根据以下要求写出相应的汇编语言指令。(1) 把BX和DX寄存器的内容相加,结果存入DX寄存器中;(2) 用BX和SI的基址变址寻址方式,把存储器中的一个字节与AL内容相加,并保存在AL寄存器中;(3) 用寄存器BX和位移量21B5H的变址寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储
5、器单元中;(4) 用位移量2158H的直接寻址方式把存储器中的一个字与数3160H相加,并把结果送回该存储器中;(5) 把数25H与(AL)相加,结果送回寄存器AL中。1.9 库中题号:050031 5分写出能够完成下列操作的8086CPU指令。(1) 把4629H传送给AX寄存器;(2) 从AX寄存器中减去3218H;(3) 把BUF的偏移地址送入BX中。1.10 库中题号:050030 5分设VAR1、VAR2为字变量,LAB为标号,分析下列指令的错误之处并加以改正。(1) ADD VAR1,VAR2 (2) MOV AL,VAR2(3) SUB AL,VAR1 (4) JMP LABSI
6、 (5) JNZ VAR1 (6) JMP NEAR LAB1.11 库中题号:050029 5分分析下列指令的正误,对于错误的指令要说明原因并加以改正。(1) MOV BYTE PTRBX,1000 (2) MOV BX,OFFSET MAYDATSI (3) MOV CS,AX (4) MOV DS,BP1.12 库中题号:050028 5分分析下列指令的正误,对于错误的指令要说明原因并加以改正。 (1) MOV AH,BX (2) MOV BX,SI (3) MOV AX,SIDI (4) MOV MYDATBXSI,ES:AX1.13 库中题号:050027 5分给定寄存器及存储单元的
7、内容为:(DS) = 2000H,(BX) = 0100H,(SI) = 0002H,(20100) = 32H,(20101) = 51H,(20102) = 26H,(20103) = 83H,(21200) = 1AH,(21201) = B6H,(21202) = D1H,(21203) = 29H。试说明下列各条指令执行完后,AX寄存器中保存的内容是什么。 (1) MOV AX,BX (2) MOV AX,1100HBX (3) MOV AX,BXSI1.14 库中题号:050026 5分给定寄存器及存储单元的内容为:(DS) = 2000H,(BX) = 0100H,(SI) =
8、0002H,(20100) = 32H,(20101) = 51H,(20102) = 26H,(20103) = 83H,(21200) = 1AH,(21201) = B6H,(21202) = D1H,(21203) = 29H。试说明下列各条指令执行完后,AX寄存器中保存的内容是什么。 (1) MOV AX,1200H (2) MOV AX,BX (3) MOV AX,1200H1.15 库中题号:050025 5分设(DS)=2000H,(ES)=2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量VAL的偏移地址为00
9、50H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1) MOV AX,BX+10 (2) MOV AX,VALBX (3) MOV AX,BXSI (4) MOV AX,VALBXSI1.16 库中题号:050024 5分设(DS)=2000H,(ES)=2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1) MOV AX,BX (2) MOV AX,ES:BX (3) MOV AX,BP (4) MOV AX
10、,SI1.17 库中题号:050023 5分设(DS)=2000H,(ES)=2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1) MOV AX,21H (2) MOV AX,BX (3) MOV AX,1000H (4) MOV AX,VAL1.18 库中题号:050022 5分请写出下列指令单独执行后,有关寄存器及存储单元的内容。假设指令执行前(DS)=(ES)=3000H, (AX)=2000H, (BX)=1200H, (S
11、I)=2,(31200H)=2400H, (31202H)=90F7H。(1)ADD ES:BX,900H (2)SUB BX+SI,AX 1.19 库中题号:050021 5分已知DS091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H,SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。在以上条件下,分别写出下列指令或指令段执行后的结果?MOV CL,BX+20HSI;MOV BPDI,CX;LEA BX,BX+20HSIMOV AX,BX+2;1.20 库中题号:05
12、0020 5分数据段定义如下:DATA SEGMENT AT 2000H ORG 30H VAR1 DW 10 DUP(?) VAR2 DB 10 DATA ENDS分析下列指令执行后寄存器的结果:MOV AX,SEG VAR1 ;AX=( )MOV BX,OFFSET VAR1 ;BX=( )MOV CX,OFFSET VAR2 ;CX=( )MOV DX, VAR2 ;DX=( )1.21 库中题号:050019 5分已知DS091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H,SI=0012H,DI=0032H,(09226H)=00F6H
13、,(09228H)=1E40H,(1E4F6H)=091DH。在以上条件下,分别写出下列指令或指令段执行后的结果?(1) LDS SI,BXDI MOV SI,BX(2) XCHG CX,BX+32XCHG BX+20HSI,AX1.22 库中题号:050018 5分设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。试编写程序片段,读出计数器2的内容,并把读出的数据装入寄存器AX。1.23 库中题号:050017 5分给定(SP)=0100,(SS)=0300,(FLAGS)=0240,存储单元的内容为(00020)=0040,(00022)=0100,
14、在段地址为0900及偏移地址为00A0的单元中有一条中断指令INT 8,试问执行INT 8指令后,SP,SS,IP,FLAGS的内容是什么?栈顶的三个字是什么?1.24 库中题号:050016 5分写出分配给下列中断类型号在中断向量表中的物理地址。 (1) INT 12H (2) INT 81.25 库中题号:050015 5分分析下列程序的功能,写出堆栈最满时各单元的地址及内容。SSEGSEGMENTSTACK AT 1000H; 堆栈的段地址为1000HDW128 DUP(?)TOSLABEL WORDSSEGENDSDSEGSEGMENTDW 32 DUP(?)DSEGENDSCSEGS
15、EGMENTMAIN PROCFARASSUME CS:CSEG, DS:DSEG,SS:SSEGSTART:MOVAX,SSEGMOVSS,AXMOVAX,DSEGMOVDS,AXMOVAX,4321HCALLHTOARETN:MOVAH,4CHINT21HMAINENDPHTOAPROCNEARCMPAX,15JLEB1PUSHAXPUSHBPMOVBP,SPMOVBX,BP+2ANDBX,0FHMOVBP+2,BXPOPBPMOVCL,4SHRAX,CLCALLHTOAB1:POPAXB2:ADDAL,30HJLPRTADDAL,07PRT: MOVDL,ALMOVAH,2INT21HR
16、ETHTOAENDPCSEGENDSENDSTART1.26 库中题号:050014 5分假设(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 请写出下列各条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF
17、、ZF、OF、CF的值。 (1) REP STOSB (2) JMP WORD PYRBX (3) XCHG AX,ES:BX+SI1.27 库中题号:050013 5分假设(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 请写出下列各
18、条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF、ZF、OF、CF的值。 (1) DIV BH (2) SAR AX,CL (3) XOR AX,0FFE7H1.28 库中题号:050012 5分假设(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0
19、FFFEH, (CF)=1, (DF)=1, 请写出下列各条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF、ZF、OF、CF的值。 (1) SBB AX,BX (2) CMP AX,WORD PTRSI+0FA0H (3) MUL BYTE PTRBX (4) AAM1.29 库中题号:050011 5分假如在程序的括号中分别填入指令: (1) LOOP L20 (2) LOOPNE L20 (3) LOOPE L20 试说明在三种情况下, 当程序执行完后, AX、BX、CX、DX四个寄存器的内容分别是什么? TITLE EXLOOP.COM CODESG SE
20、GMENT ASSUME CS:CODESG, DS:CODESG. SS:CODESG ORG 100H BEGIN: MOV AX,01 MOV BX,02 MOV DX,03 MOV CX,04 L20: INC AX ADD BX,AX SHR DX,1 ( ) RET CODESG ENDS END BEGIN1.30 库中题号:050010 5分假定AX和BX中的内容为带符号数, CX和DX中的内容为无符号数, 请用比较指令和条件转移指令实现以下判断:(1)BX的值与AX的值相减, 会产生溢出吗? 若溢出则转OVERFLOW(2)若BX的值小于AX的值,则转去执行EQ_SMA(3)
21、若DX的值低于CX的值,则转去执行EQ_SMA 1.31 库中题号:050009 5分假定AX和BX中的内容为带符号数, CX和DX中的内容为无符号数, 请用比较指令和条件转移指令实现以下判断:(1)若DX的值超过CX的值,则转去执行EXCEED(2)若BX的值大于AX的值,则转去执行EXCEED(3)CX中的值为0吗? 若是则转去执行ZERO1.32 库中题号:050008 5分用其他指令完成和下列指令一样的功能:(1) REP STOSB (2) REP SCASB1.33 库中题号:050007 5分用其他指令完成和下列指令一样的功能:(1) REP MOVSB (2) REP LODS
22、B1.34 库中题号:050006 5分试分析下面的程序段完成什么操作? MOVCL,04 SHL DX,CL MOVBL,AH SHL AX,CL SHR BL,CL OR DL,BL1.35 库中题号:050005 5分DATASEGMENTTABLE_ADDR DW 1234H DATAENDS. MOVBX, TABLE_ADDR LEABX, TABLE_ADDR请写出上述两条指令执行后, BX寄存器中的内容。1.36 库中题号:050004 5分指出下列指令的错误:(1) MOV AH,BX (2) MOV SI,BX (3) MOV AX,SIDI1.37 库中题号:050003
23、 5分执行下列指令后, AX寄存器中的内容是什么? TABLE DW 10,20,30,40,50 ENTRY DW 3 . MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,BX1.38 库中题号:050002 5分分析下列标号为什么是非法的? (1) GET.DATA (2) 1_NUM (3) TEST-DATA (4) RET (5) NEW ITEM1.39 库中题号:050001 5分分析并指出下列程序中的错误: STAKSG SEGMENT DB 100 DUP(?) STA_SGENDS DTSEG SEGMENT DATA1 DB ? DTSEG
24、 END CDSEG SEGMENT MAIN PROC FAR START: MOVDS,DATSEG MOVAL,34H ADD AL,4FH MOV DATA,AL START ENDP CDSEG ENDS END重庆科技学院20_ /20_ 学年第 学期试卷参考答案及评分标准( 卷)课程名称: 微机原理 选课课号: 适用专业/年级: 抽(命)题人: 考试方式: 卷面总分: 分一.程序分析题 (共39题,195分)1.1 库中题号:050039 5分解:不一样. 分别是72H, 04H和04H, 72H. 存储字时低8位存在低字节,高8位存在高字节.1.2 库中题号:050038 5分
25、解: (1) 基址变址方式不能有 BX和BP的组合 (2) 在8086寻址方式中,AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式 (3) 1000超出一个字节的表数范围1.3 库中题号:050037 5分解: (1) OFFSET只用于简单变量,应去掉 (2) CS不能作为目的寄存器 (3) 段地址不能直接送入数据段寄存器 1.4 库中题号:050036 5分解:(1)完成0到100间所有偶数求和的功能。(2)25501.5 库中题号:050035 5分解:汇编语言源程序应该由若干个逻辑段组成,可以有若干个数据段、代码段、堆栈段和附加数据段,至少要有一个代码段。各段的作用如下
26、:(1)代码段用来存放程序和常数。(2)数据段用于数据的保存。(3)堆栈段用于保护数据,尤其在子程序调用、中断过程中进行现场信息保护。(4)附加数据段用于数据的保存。语句标号和变量应具备的3种属性:段属性、偏移属性和类型属性。1.6 库中题号:050034 5分解:程序第8行错误:LEA SI,OFFSET DD1,应去掉OFFSET;程序第10行错误:RCR AL,CL,应使用ROR或ROL,改为ROR AL,CL1.7 库中题号:050033 5分解:(1) LEA BX,BLOCK+10MOV CX,BX(2) LEA BX,BLOCKMOV CX,10BX(3) LEA BX,BLOC
27、KMOV SI,10MOV CX,BXSI1.8 库中题号:050032 5分解:(1) ADD DX,BX(2) ADD AL,BXSI(3) ADD 21B5HBX,CX(4) ADD WORD PTR 2158H,3160H(5) ADD AL,25H1.9 库中题号:050031 5分解:(1) MOV AX,4629H(2) SUB AX,3218H(3) LEA BX,BUF1.10 库中题号:050030 5分解:(1) ADD VAR1,VAR2错误,两个操作数不能都为存储单元,可改为 MOV BX,VAR2ADD VAR1,BX(2) MOV AL,VAR2错误,数据类型不匹
28、配,可改为MOV AX,VAR2(3) SUB AL,VAR1错误,数据类型不匹配,可改为SUB AX,VAR1(4) JMP LABSI 错误,寄存器相对寻址形式中不能用标号做位移量,可改为JMP VAR1SI(5) JNZ VAR1错误,条件跳转指令只能进行段内短跳转,所以后面只能跟短标号。可改为JNZ LAB(6) JMP NEAR LAB错误,缺少运算符PTR,可改为JMP NEAR PTR LAB1.11 库中题号:050029 5分解:(1) MOV BYTE PTRBX,1000错误,1000超出字节空间存储范围(2) MOV BX,OFFSET MAYDATSI ;正确(3)
29、MOV CS,AX错误,MOV指令CS不能做目的操作数,可改为MOV DS,AX(4) MOV DS,BP ;正确1.12 库中题号:050028 5分解:(1) MOV AH,BX 错误,寄存器类型不匹配,可改为MOV AX,BX(2) MOV BX,SI错误,两个操作数不能都为存储单元,可改为MOV BX,SI或MOV BX,SI(3) MOV AX,SIDI错误,寻址方式中只能出现一个变址寄存器,可改为MOV AX,BXDI。(4) MOV MYDATBXSI,ES:AX错误,AX签不能有段跨越前缀,去掉ES:,改为MOV MYDATBXSI,AX1.13 库中题号:050027 5分解
30、:(1) MOV AX,BXEA = (BX)= 0100H,PA =(DS)10HEA= 2000H10H0100H= 20100H,执行后,(AX)= 5132H(2) MOV AX,1100HBXEA =(BX)1100H = 0100H1100H = 1200H,PA = (DS)10HEA = 2000H10H1200H = 21200H,执行后,(AX)= B61AH(3) MOV AX,BXSIEA =(BX)(SI)= 0100H0002H= 0102H,PA= (DS)10HEA = 2000H10H0102H = 20102H,执行后,(AX)= 29D1H1.14 库中题
31、号:050026 5分解:(1) MOV AX,1200H ;执行后,(AX)= 1200H(2) MOV AX,BX ;执行后,(AX)= (BX)= 0100H(3) MOV AX,1200H 直接寻址,EA = VAL = 1200H,PA = (DS)10HEA = 2000H10H1200H = 21200H,执行后,(AX)= B61AH1.15 库中题号:050025 5分解:(1) MOV AX,BX+10相对寄存器寻址,EA =(BX)10D = 0100H000AH = 010AH,PA= (DS)10HEA = 2000H10H010AH = 2010AH(2) MOV
32、AX,VALBX相对寄存器寻址,EA =(BX)VAL= 0100H0050H= 0150H,PA= (DS)10HEA = 2000H10H0150H = 20150H(3) MOV AX,BXSI基址变址寻址,EA = (BX)(SI)= 0100H00A0H = 01A0H,PA = (DS)10HEA = 2000H10H01A0H = 201A0H(4) MOV AX,VALBXSI相对基址变址寻址,EA = (BX)(SI)VAL= 0100H00A0H0050H = 01F0H,PA =(DS)10HEA = 2000H10H01F0H = 201F0H1.16 库中题号:050
33、024 5分解:(1) MOV AX,BX寄存器间接寻址,EA =(BX)= 0100H,PA =(DS)10HEA= 2000H10H0100H = 20100H(2) MOV AX,ES:BX寄存器间接寻址,EA =(BX)= 0100H,PA =(ES)10HEA= 2100H10H0100H = 21100H(3) MOV AX,BP寄存器间接寻址,EA =(BP)= 0010H,PA =(SS)10HEA= 1500H10H0010H = 15010H(4) MOV AX,SI寄存器间接寻址,EA =(SI)=00A0H,PA =(DS)10HEA = 2000H10H00A0H =
34、 200A0H1.17 库中题号:050023 5分解:(1) MOV AX,21H立即寻址,源操作数直接放在指令中(2) MOV AX,BX寄存器寻址,源操作数放在寄存器BX中(3) MOV AX,1000H直接寻址,EA = 1000H,PA =(DS)10HEA = 2000H10H1000H = 21000H(4) MOV AX,VAL直接寻址,EA = VAL = 0050H,PA = (DS)10HEA = 2000H10H0050H = 20050H1.18 库中题号:050022 5分解:(1)(31200H)=2D00H (2)(31202H)=70F 7H 1.19 库中题号:050021 5分解:1.(1)CL=F6H (2)(1E4F6H)=5678H (3) BX=0056H AX=1E40H 1.20 库中题号:050020 5分解:AX=2000H BX=0030H