2022年2022年汇编语言程序设计习题-答案 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年2022年汇编语言程序设计习题-答案 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言程序设计习题-答案 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4.1 分析执行下列指令序列后的结果:1)MOV AX ,1234H MOV BX ,00FFH AND AX ,BX 【答】 (AX)=0034H 2)MOV AL ,01010101B AND AL ,00011111B ;(AL)=00010101B OR AL ,11000000B ;(AL)=11010101B XOR AL ,00001111B ;(AL)=11011010B NOT AL 【答】 (AL)=00100101B 3)MOV DL ,05H MOV AX ,0A00H MOV DS,AX MOV SI,0H MOV CX,0FH AGAIN: INC SI CMP S
2、I,DL LOOPNE AGAIN HLT 本程序实现了什么功能?【答】在以0A001H 开始的 15 个单元中查找05H。4)MOV AX,DSEGADDR MOV DS, AX MOV ES,AX MOV SI, OFFSET B1ADDR MOV DI,OFFSET B2ADDR MOV CX,N CLD REP MOVSB HLT 本程序实现了什么功能?【答】将 B1ADDR中 N 个字节数据传送到B2ADDR 开始的 15 个存储单元。5)MOV AX, 0H MOV DS,AX MOV ES, AX MOV AL,05H MOV DI,0A000H MOV CX,0FH CLD A
3、GAIN: SCASB LOOPNE AGAIN HLT 本程序实现了什么功能?【答】从地址0A000H 开始的 15 个单元中查找字节型数据05H,用条件循环LOOPNZ ,控制数据 05H 的查找。4.2 阅读程序 : 1). CLD LEA DI ,0100H MOV CX, 0080H XOR AX, AX REP STOSW 本程序实现了什么功能?【答】将DS 中起始地址为0100H 的 128 个字节单元清零。2). MOV AL, 08H SAL AL,01H ;(AL)=00010000H MOV BL, AL MOV CL ,02H 名师资料总结 - - -精品资料欢迎下载
4、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - SAL AL,CL ;(AL)=01000000H ADD AL,BL ;(AL)=01010000H 本程序实现了什么功能?【答】将 AL 中的内容乘以10。4.3 试分析下列程序完成什么功能?MOV DX ,3F08H MOV AH ,0A2H MOV CL,4 SHL DX ,CL ;(DX)=F080H MOV BL ,AH SHL BL ,CL ;(BL)=20H SHR BL ,CL ;(BL)=02H OR
5、 DL ,BL ;(DL)=82H 【答】将DX 中的低 4 位数据 8H 分离出来,将AH 中的低 4 位数据 2H 分离出来,合并为82H存放在 DL 。4.4 已知程序段如下:MOV AX ,1234H MOV CL,4 ROL AX ,CL DEC AX MOV CX,4 MUL CX 试问:( 1)每条指令执行后,AX 寄存器的内容是什么?(2)每条指令执行后,CF,SF及 ZF 的值分别是什么?(3)程序运行结束时,AX 及 DX 寄存器的值为多少?【答】MOV AX ,1234H ; (AX)=1234H, CF=SF=ZF=0 MOV CL,4 ROL AX ,CL ; (AX
6、)=2341H ,CF=1,SF=ZF=0 DEC AX ; (AX)=2340H, CF=1,SF=ZF=0 MOV CX,4 ;MUL CX ;(AX)= 8000H ,CF=ZF=0,SF=1,DX=0 4.5 试分析下列程序段:ADD AX ,BX JNC L2 SUB AX ,BX JNC L3 JMP SHORTL5 如果 AX 、BX 的内容给定如下:AX BX (1)14C6H 80DCH (程序转向L2)(2)B568H 54B7H (程序转向SHORTL5 )问该程序在上述情况下执行后,程序转向何处?【答】(1) 程序转向L2。(2) 程序转向SHORTL5 。4.6 以下
7、为某个数据段,试问各个变量分别占多少字节,该数据段共占多少字节?DATA SEGMENT VAR1 DW 9 ;2 字节VAR2 DD 10 DUP( ?), 2 ;44 字节VAR3 DB 2 DUP( ?, 10 DUP( ?) ;22 字节VAR4 DB HOW ARE YOU ;11 字节DATA ENDS 【答】该数据段共占79 字节。4.7 下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。VAR1 DB 10,2 ;2 字节VAR2 DW 5DUP(?), 0 ;12 字节VAR3 DB HOW ARE YOU?, $ ;13 字节VAR4 DD -1,1,0
8、 ;2 字节Var1 Var2 Var3 Var4 10 ? H FFH 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 2 ? O FFH ? W FFH ? FFH ? A 01H ? R 00H ? E 00H ? 00H ? Y 00H ? O 00H 0 U 00H 0 ?00H $ 4.8 编写一段程序,比较两个5 字节的字符串OLDS 和 NEWS ,若相同,在RESULT 置 0,否则置 0FFH。【答】参考程
9、序:OLDS DB 1,2,3,4,5 NEWS DB 1,2,3,4,5 RESULT DB ? MOV SI,OFFSET OLDS MOV DI,OFFSET NEWS MOV CX,10 CLD REP CMPSB JNZ NOEQU ;串不相等转MOV AL,0 JMP OUTPT NOEQU: MOV AL,0FFH OUTPT: MOV RESULT,AL STOP: JMP STOP 4.9 编程求和 Y=A1 + A2 + ,. + A100 。其中 Ai 为字节变量。【答】参考程序:DATA SEGMENT TABLE DW 12,3,45,. YAL DW ? YAH D
10、W ? DATA ENDS .MIAN PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX MOV DX,0 XOR AX, AX ;清 AX MOV BX, OFFSET TABLE MOV CX, 4 CLC LP: ADD AX, BX ;求和JNC DON INC DX CLC DON: INC BX INC BX ;指向下一个数LOOP LP ;未加完 ,继续MOV YAL,AX ;存和名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
11、 - - - - - 第 3 页,共 11 页 - - - - - - - - - MOV YAH,DX MAIN ENDP CODE ENDS END START 4.10 内存中以FIRST 和 SECOND 开始的单元中分别存放着两个16 位组合的十进制(BCD 码)数,低位在前。编程序求这两个数的组合的十进制和,并存到以THIRD 开始的单元。【答】参考程序: 1325+9839=? DATA SEGMENT FIRST DB 05H,02H,03H,01H ; SECOND DB 09H,03H, 08H,09H; THIRD DB 20 DUP (?) DATA ENDS STAC
12、K SEGMENT ST1 DB 100 DUP ( SA)TOP1 EQU LENGTH ST1 STACK ENDS CODE SEGMENT ASUMME CS:CODE,DS:DATA,SS:STACK MAIN PROC FAR START: MOV AX, DAT ;初始化数据段MOV DS, AX MOV AX, STACK ;初始化堆栈段MOV SS, AX MOV AX, TOP1 MOV SP, AX MOV CX, 4 ;计算 4 次MOV BX, OFFSET DAT1 ;取数据地址MOV SI , OFFSET DAT2 ;取数据地址MOV DI , OFFSET S
13、UM ;取结果地址MOV AH, 00H ;将暂存标志的AH 清 0 DON1: MOV AL, BX ;取第一个数SAHF ;将 AH 中的标志送标志寄存器ADC AL, DI ;与第二个数带进位加AAA ;十进制校正LAHF ;将标志寄存器内容送AH OR AL, 30H ;计算值拼成ASCII 码MOV DI, AL ;存结果的 ASCII 码INC BX ;指向第一个数的下一位INC SI ;指向第二个数的下一位INC DI ;指向结果单元的下一位LOOP DON1 ;未计算完,继续AND AH, 01H ;将最高位的进位标志送AH OR AH, 30H ;最高位的进位位拼成ASCII
14、 码MOV DI, AH ;存结果的最高位MOV AH, 02H ;调用 DOS 的 02H 功能显示MOV CX, 05H ;显示数据的位数DON2: MOV DL,DI ;显示数据送DL INT 21H ;显示DEC DI ;显示数据所在存储单元加一LOOP DON2 ;未显示完 ,继续MOV AH, 4CH ;返回 DOS INT 21H RET MAIN ENDP CODE ENDS END START 4.11 试编程序,统计由40000H 开始的 16K 个单元中所存放的字符“A“的个数,并将结果存放在 DX 中。名师资料总结 - - -精品资料欢迎下载 - - - - - - -
15、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 【答】参考程序DATA SEGMENT DATA1 DB DFASFAAAFDFAAFFFA COUNT EQU $-DATA1 DATA ENDS STACK SEGMENT STA DB 100 DUP (?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: MOV AX,DATA MOV DS,AX MOV AX,STACK
16、MOV SS,AX MOV AX,TOP MOV SP,AX MOV CX,COUNT MOV DX,0 LEA SI,DATA1 MOV BL,A NEXT : CMP SI,BL JNZ OTHER INC DX OTHER: INC SI LOOP NEXT CODE ENDS END BEGIN 4.12 统计数据块中正数与负数的个数,并将正数与负数分别送到两个缓冲区。【答】参考程序:BLOCK DB -1,-3,5,6,-2,0,20,10 PLUS_D DB 8 DUP(?) ;正数缓冲区MINUS_D DB 8 DUP(?) ;负数缓冲区PLUS DB 0 MINUS DB 0
17、MOV SI,OFFSET BLOCK MOV DI,OFFSET PLUS_D MOV BX,OFFSET MINUS_D MOV CX, 8 ;数据个数送CX GOON: LODSB ;AL SI TEST AX, 80H JNZ JMIUS ;为负数,转INC PLUS ;正数个数加一STOSB ;DI AL, 传正数JMP AGAIN JMIUS: INC MINUS ;负数个数加一XCHG BX, DI STOSB ;送负数到缓冲区XCHG BX, DI AGAIN: DEC CX JNZ GOON 4.13 编写一个子程序将AX 中的十六进制数,转换成 ASCII 码, 存于 AD
18、R 开始的四个单元中。提示: 1)、 AX 中的数从左到右,转换成ASCII 码,用循环左移ROL 和 AND 指令,把提出的一个十六进制数置BL 中;2)、 0 9 的 ASCII 码: 30 39H ,A F 的 ASCII 码: 41H 46H 。( 先把每个数加30H, 判断是否为数字0 9?若是 A F , 再加 07H, 得字母的ASCII 码。)【答】参考程序:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - DA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年汇编语言程序设计习题-答案 2022 汇编语言 程序设计 习题 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内