2022年微机原理练习题 .pdf
1. 已知下列数组语句 : 0RG 0100H ARY DW 3, $+4, 5, 6 CNT EQU $-ARY DB 7,8,CNT,9 问执行语句 MOV AX, ARY +2和 MOV BX,ARY +10 后,AX=? BX=? 答: AX=(ARY +2) = (0102H) =0106H; BX=( ARY +10) = (010AH) =0908H。2. 某程序设置的数据区如下所示。DATA SEGMENT DB1 DB 12H, 34H, 0, 56H DW1 DW 78H, 90H, 0AB46H, 1234H ADR1 DW DB1 ADR2 DW DW1 AAA DW $-DB1 BUF DB 5 DUP(0) DATA ENDS 画出该数据段内容在内存中的存放形式(要求用十六进制补码表示, 按字节组织 ) 。3. 分析下列程序 : A1 DB 10 DUP(7) A2 DB 0,1,2,3,4,5,6,7,8,9 MOV CX, LENGTH Al MOV SI, SIZE A1 - TYPE Al 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - LP: MOV AL, A2SI MOV AlSI,AL SUB SI,TYPE A1 DEC CX JN2 LP HLT 问: (1) 该程序的功能是什么 ? (2) 该程序执行后 ,A1 单元开始的 10 个字节内容是什么 ? 答: (1) 该程序的功能是将从A2单元开始存放的10 个字节数据传送到从Al 单元开始的 10 个字节单元中。(2) 程序执行后 ,Al 单元开始的 10 个字节内容是 0,1,2,3,4,5,6,7,8,9。4. 试分析下列程序 : BUF DB 0BH MOV AL, BUF CALL FAR PTR HECA HECA PROC FAR CMP AL, 10 JC LP ADD AL, 7 LP: ADD AL, 30H MOV DL, AL MOV SH, 2 INT 21H RET HECA ENDP 问: (1) 该程序是什么结构的程序?功能是什么 ? (2) 程序执行后 ,DL=? (3) 屏幕上显示输出的字符是什么? 答: (1) 该程序为主程序调用子程序的结构, 且为远调用子程序 ; 功能是将 BUF单元中的 0F一位十六进制数转换成对应的ASCII 码。(2) DL =42H 。(3) 屏幕上显示输出的是字符“B”。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 5. 分析下列程序 : DATA SEGMENT NUM DB 06H SUM DB ? DATA ENDS STACK SEGMENT PARA STACK STACK STAPN DW100 DUP (?) STACK END: CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS :STACK START: MOV AX , DATA MOV Ds , AX PUSH AX PUSH DX CALL AA MOV AH , 4CH INT 21H AAA PROC XOR AX, AX MOV DX , AX INC DL MOV CI, NUM MOV CH, 00H BBB: ADD AL, DL DAA INC DL LOOP BBB MOV SUM , AL RET AAA ENDP CODE ENDS END START 问: (1) 程序执行到 MOV AH,4CH 语句时 ,AX=? DX=? SP=? (2) BBB:ADD AL, DL 语句的功能是什么 ? (3) 整个程序的功能是什么 ? 答: (1) 程序执行到 MOV AH,4CH 语句时 ,AX=1 +2 +3 +4 +5 +6 =21H;DX=07H; SP初值为 200 字节= C8H,当程序执行到 MOV AH, 4CH时,由于堆栈仍压入了AX 、DX,故 SP = C4H。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - (2)BBB: ADD AL,DL语句的功能是将 AL和 DL中的两个 BCD 数相加 , 结果存入 AL。(3) 整个程序的功能是对1 6 的自然数进行BCD数求和 , 结果为 BCD数, 存于NUM 。6. 分析下列程序 : DATA SEGMENT DISPDATA DB INPUT NUMBER REY, CR OR SP RETURN, ODH, 0AH DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX , DATA MOV DS , AX LEA DX , DISPDATA ;(1) MOV AH, 09H ;(2) INT 21H AGAIN: MOV AH, 01H ;(3) INT 21H CMP AL , ODH ;(4) . JZ EXIT ;(5) CMP AL , 20H ;(6) JZ EXIT; CMP AL , 30H ;(7) JBE AGAIN ;(8) CMP AL , 39H ;(9) JA AGAIN ;(10) SUB AL , 30H ;(11) MOV CL , AL ;(12) AND CX , OFFE DONE: MOV AH, 02H MOV Dl , 07H ;(13) INT 21H CALL DELAY LOOP DONE JMP AGAIN EXIT: MOV AH , 4CH ;(14) INT 21H DELAY: PUSH CX MOV CX , 0FFFH LOOP DELAY POP CX RET CODE ENDS END START 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 按照程序各语句中“ ; ”号后面的题号 (1) -(14),试分别回答这些语句的功能。程序执行后将完成什么功能? 答: (1) 取显示数据首址的偏移地址。(2) 调研 DOS 的 09H号功能以调用显示数据。(3) 从键盘输人一个 ASCI码字符数据。(4) 判是否回车符 ? (5) 是回车符则结束。(6) 判是否为空格符 ? (7) 与“0”比较。(8) 小于等于 0, 则不响铃 , 重输入。(9) 与“9”比较。(10) 大于 9, 则不响铃 , 重输入。(11) ASCII 码数转换成 BCD码。(12) CX 作响铃计数器。(13) 调用 02H号功能以调用输出响铃字符响铃。(14) 返回 DOS 。程序执行后将在屏幕上显示提示行 “键人数字键 , 回车或空格键返回”, 然后紧接着是回车、换行 , 等待从键盘上输人一个ASCII 码字符数据。如果是数字 N(1 9),则响铃 N次( 每次有一定的延时以作间隔); 若数字是 0 或者非数字,则不响铃;如果式回车或者空格键,则退至DOS 。7. 编写一个程序,实现把自 1000H单元开始的 100 个字节的数据传送至1050H开始的存储区。答:ORG 0000H SJMP MAIN ORG 0100H MAIN: MOV R0, #1000H ; MOV R1, #1050H ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - MOV R3 , #64H ;LOOP: MOV DPTR,R0 MOVX A,DPTR MOV DPTR,R1 MOVX DPTR,A INC R0 INC R1 DJNZ R3,LOOP SJMP $ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -