微机原理与接口技术第三章-练习题(共7页).doc
精选优质文档-倾情为你奉上第三章 练习题一、问答题1、DB1 DB 5 DUP 3 DUP(2),2 DUP(3) MOV AL,DB1+4 MOV BX,WORD PTR DB13上面2条指令执行后,(AL)=? (BX)=?2、下面程序段执行后,寄存器DS,SI的内容分别是多少? ADR DW 1234H,5678H,0ABCDH LDS SI,ADR+1 MOV BX,WORD PTR DB133、下面程序段执行后,寄存器AX,BL的内容是什么?ARY_W DW 10H DUP(1234H)ARY_B EQU BYTE PTR ARY_W MOV AX,ARY_W+2 MOV BL,ARY_B+24、有下列数据段: DATA SEGMENT ORG 30H CON EQU 10H S1 DB IBM PC DB 0AH,0DH CONT EQU $-S1 S2 DW IB,M,PC,0A0DH DATA ENDS 上述数据段中S1,S2的偏移量分别是多少?CONT的值和S2+5字节单元的内容是多少?5、设(DX)=80,CF=1 MOV AX,0AA50H XOR AH,0FFH OR DH,55H SBB AX,DX 上述指令序列执行后,(AX)=?,(DX)=?6、设AX,BX,CX,中均有数据0AAH,下面3条指令执行后,AX,BX,CX中的内容分别是多少? AND AX,-2 OR BX,-2 XOR CX,-27、VA_VAR DW 45678 MOV AX,DA_VAR MOV DX,DX MOV BX,10 LOP: XOR DX,DX DIV BX PUSH AX CMP DX,0 JNE LOP执行完上述程序段后,向堆栈压了几个数据?按压入的先后顺序指出这些数据。如果PUSH AX指令换成PUSH DX,那么向堆栈压入了几个数据?按压入的先后顺序指出这些数据。8、DATA1 EQU BYTE PTR DATA2 DATA2 DW 0A987H,3456H SAR DATA+1,1 MOV AX,DATA2+1 SAL DATA2+1,1 MOV BX,DATA2+1上述指令序列执行后,(AX)=?,(BX)=?,CF=?,以DATA2为首址的两个字单元内容分别是多少?9、 MOV AL,0FHXOR AL,0FFHMOV CL,7SHR AL,CL上述几条指令执行后,(AL)=?如将SHR指令换成ROR或RCR,那么AL中的内容分别是多少?10、以W1为首址的各字节单元中分别存有数字09。下面程序段运行后,以W2为首址的各字节单元中的内容分别是什么?W1 DB ×, ×, ×, W2 DB $-W1 DUP (0) MOV CX,LENGTH W2 MOV SI,OFFSET W1 MOV DI,OFFSET W2 CLDLOP: LODSB ;MOV AL,SI ;INC SI ADD AL,A STOSB ;MOV DI,AL ;INC DI LOOP LOP11、下面程序段是使用DOS功能子程序,实现从键盘输入10个数,然后按相反的次序在屏幕上显示出来。请在空白处填上适当指令语句,每一空白只填一条指令语句。 MOV CX,10LOP1: MOV AH,1 INT 21H LOOP LOP1 MOV CX,10LOP2: MOV AH,2 INT 21H LOOP LOP212、设已定义数据段:DATA SEGMENT VAR1 DB ?,?VAR2 DB ?,?ADR DW VAR1,VAR2DATA ENDS若要使ADR+2单元中存放的内容为0022H,上述空白处应填写什么语句?13、仔细阅读下面程序,试给出程序运行结束后,BUF2中各字节存储单元的内容。 DATA SEGMENT BUF1 DW 0102H,0304H,0506H,0708H COUNT EQU $-BUF1 BUF2 DW 5 DUP(0) DATA ENDS COSEG SEGMENT ASSUME CS:COSEG,DS:DATA BEGIN: MOV AX,DATA MOV DS,AX MOV BX,0 MOV SI,0 MOV DL,2 LOP1: MOV CX,COUNT/2LOP2: MOV AL,BYTE PTR BUF1SI MOV BL,AL ADD AL,BL MOV BYTE PTR BUF2BX,AL INC SI INC SI LOOP LOP2 MOV SI,1 DEC DL JNE LOP1 MOV AH,4CH INT 21H COSEG ENDS END BEGIN14、 TEST DX,01HJE L1 L1:上述程序段运行后试DX中的数据形成偶数。如原来已是偶数,DX中内容不变;如DX中原来是奇数,试回答:(1)用加1形成偶数,这时空白处填一条什么指令?(2)用减1形成偶数,这时空白处填一条什么指令?15、DA1 DB 2,3,7,0AH,0FH,4,5,9,8,0CH XOR AX,AX MOV CL,0 MOV BX,0LOP: TEST DA1BX,01H JE NEXT ADD AL,DA1BX INC AHNEXT: INC BX INC CL CMP CL,10 JNE LOP上述程序段执行后,AH和AL中内容分别是多少?16、AA1 DB 10H DUP(2)AA2 DW 10H DUP(0304H) MOV BX,0 MOV AL,0 MOV CX,10BB1: ADD AL,AA1BX ADD AL,BYTE PTR AA2BX INC BX LOOP BB1上述程序段运行期间,当执行完INC BX且(BX)=05H时,CX和AL中的内容分别是多少?17、DB1 DB 4 DUP(2,4,6,8) LEA BX,DB1 MOV CX,10H MOV AX,0LOP: ADD AL,BX AND AL,0FH CMP AL,8 JBE NEXT INC AH SUB AL,08HNEXT: LOOP LOP上述程序段执行后,(AX)=?如果LOOPNE指令替代LOOP指令,那么上述程序段执行后,(AX)=?(CX)=?18、下面程序段是判断寄存器AH和AL中第3位是否相同,如相同,AH置0,否则AH置非0。试在空白处填上适当的指令(一个空白只填一条指令)。 AND AH,08H MOV AH,0FFH JMP NEXTZERO: MOV AH,00HNEXT: 19、试用两条指令完成对寄存器AH和AL分别加1,且AL加1形成的进位加在AH的最低位,AH中加1形成的进位加在AL的最低位。20、试编制一程序,把DA_BY1字节存储单元的8位二进制数分解成3个八进制数,其中高位八进制数存放在DA_BY2的字节存储单元中,最低位存放在DA_BY2+2的字节存储单元中。例如数据单元定义如下: DA_BY1 DB 6BH DA_BY2 DB 3 DUP(0)21、试编制已程序,统计DA_WORD数据区中正数、0、负数的个数。数据段为:DATA SEGMENTDA_WORD DW -1,3,5,0,-5,-7,4,0,7, COUNT1 DB $-DA_WORDCOUNT2 DB 0 ;存放正数的个数 DB 0 ;存放0的个数 DB 0 ;存放负数的个数DATA ENDS22、仔细阅读下面程序段,试回答:(1)该程序段完成的功能是什么?(2)如(AL)=36H,程序段运行后(AL)=? MOV BL,AL AND AL,0F0H MOV CL,04H SHR AL,CL SAL AL,1 MOV CL,AL SAL AL,1 SAL AL,1 ADD AL,CL AND BL,0FH ADD AL,BL23、下面程序用DOS的1号功能调用从键盘接收字符。试问:(1)程序运行结束时,如(BL)=0,表示从键盘接收的字符范围是多少?如(BL)=1,表示从键盘接收的字符范围是什么?(2)程序在什么情况下结束?LOP: MOV AH,1 INT 21H CMP AL,* JE EXIT CMP AL,9 JBE ZERO CMP AL,A JB ONE CMP AL,Z JBE ZEROONE: MOV BL,1 JMP LOPZERO: MOV BL,0 JMP LOPEXIT: MOV AH,4CH INT 21H专心-专注-专业