欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年2022年汇编语言程序设计习题-答案 .pdf

    • 资源ID:27227395       资源大小:103.96KB        全文页数:11页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年2022年汇编语言程序设计习题-答案 .pdf

    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 SI,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 AGAIN: 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 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 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 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)=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 以下为某个数据段,试问各个变量分别占多少字节,该数据段共占多少字节?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 ;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。【答】参考程序: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 DW ? 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 ;存和名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 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 STACK 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 SUM ;取结果地址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 码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 中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 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 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 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 码, 存于 ADR 开始的四个单元中。提示: 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 页 - - - - - - - - - DATA SEGMENT ADR DB 4 DUP(?) DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA START: MOV AX,7EC3H ;假设 ax 中存放 7ec3h LEA SI, ADR MOV DL,4 AGAIN: MOV BX,AX AND BX,000FH ADD BL,30H CMP BL,9 JG ADUST JMP STORE ADUST: ADD BL ,07H STORE: MOV SI,BL INC SI MOV CL,4 ROL AX,CL DEC DL JNZ AGAIN MAIN ENDP CODE ENDS END START 4.14 编写一个子程序将AX 中的 2 进制数 ,转换成 10 进制 ASCII 码, 存于 ADR 开始的五个单元中。【答】参考程序:BIN EQU 5555H; 假设二进制数为5555H DATA SEGMENT ADR DB 4 DUP(?) DATA ENDS STACK SEGMENT STA DB 100 DUP (?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV AX,BIN LEA BX,ADR MOV CX,10000D CALL BINTODEC MOV CX,1000D CALL BINTODEC MOV CX,100D CALL BINTODEC MOV CX,10D CALL BINTODEC MOV CX,01D CALL BINTODEC MOV AX,04CH ;返回 DOS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - INT 21H MAIN ENDP ;十进制转二进制,完成一位运算,十进制存于ax 中,结果存于bx 所指向的地址中BINTODEC PROC NEAR MOV DX,0 DIV CX ADD AL,30H MOV BX,AL MOV AX,DX INC BX RET BINTODEC ENDP CODE ENDS END START 4.15 编写一个子程序,对AL 中的数据进行偶校验,并将经过校验的结果放回AL 中。【答】参考程序:JIAOYAN PROC FAR MOV AL ,1001110B OR AL, AL JNP NEXT MOV AL,0 JMP DONE NEXT: MOV AL,1 DONE: MOV AH,04CH INT 21H JIAOYAN ENDP 4.16 从 2000H 单元开始的区域,存放100 个字节的字符串,其中有几个$符号 (ASCII 码为 24),找出第一个 $符号,送AL 中,地址送 BX 。【答】参考程序:SEARCH PROC FAR MOV DI,2000H MOV CX,100 MOV AL,24H CLD REPNZ SCASB JNZ STOP DEC DI MOV BX,DI MOV AL,DI STOP: RET SEARCH ENDP 4.17 用串操作指令实现:先将 100H 个数从 2170H 单元处搬到1000H 单元处 ,然后从中检索等于AL 中字符的单元,并将此单元换成空格字符。【答】参考程序:MOV AL,24H MOV SI,2170H MOV DI,1000H MOV CX,100H CLD DO: REP MOVSB MOV DI,1000H MOV CX,100H CLD REPNZ SCASB DEC DI MOV DI,20H INC DI CMP CX,0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - JNZ DO HLT 4.18 从 60H 个元素中寻找一个最大的值,并放到 AL 中,假设这60 个元素放在DATA1开始的单元中。【答】参考程序:DATA SEGMENT DATA1 DB 0,1,2,3,4,5,6,7,8,9 ; DATA ENDS STACK SEGMENT STA DB 20 DUP (?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV CX,10 MOV AL,0 LEA BX,DATA1 AGAIN: CMP AL,BX JGE NEXT ;大于等于转移MOV AL,BX NEXT : INC BX LOOP AGAIN MOV AH,4CH INT 21H CODE ENDS END START 4.19 排序程序设计: 把表中元素按值的大小升序排列。要求显示排序前和排序后的数据。【答】参考程序:DATA SEGMENT TAB DB 8095554 N=$-TAB OK DB 0DH,0AH,OK!$ DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STAC ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK STAR: MOV AX,DATA MOV DS,AX ;初始化数据段MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX CALL ARRAY DO: MOV AH,4CH INT 21H ;返回 DOS ARRAY PROC NEAR PUSH AX PUSH BX PUSH CX 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - PUSH DX MOV DL,N-1 ;置外循环次数MOV DH,1 ;设有交换标志XOR BX, BX UPPER: OR DH,DH ; JZ DISP ;无交换 ,已排好序 ,退出MOV DH,0 ;无交换MOV CX,N-1 SUB CX,BX ;CX=CX-I内循环次数MOV SI,0 ;指向表首INNER: MOV AL,TABSI ;字符送 AL INC SI ;指向下个字符CMP AL,TABSI ;比较表中相邻字符JBE DON ;小于XCHG AL,TABSI ;否则交换 ,大字符下MOV TABSI-1,AL ;小字符上浮MOV DH,1 ;有交换 ,DH=1 DON: LOOP INNER ;内循环结束 ?CX-1 INC BX ;一次内循环完成,加一DEC DL ;外循环次数减一CMP DL,0 JNZ UPPER ;外循环次数非零,继续DISP: MOV DX,OFFSET TAB MOV AH,09H INT 21H ;显示排好序的字符POP DX POP CX POP BX POP AX RET ARRAY ENDP CODE ENDS END STAR 4.20 编写一段程序,接收从键盘输入的10 个数,输入回车符表示结束,然后将这些数加密后存于 BUFF 缓冲区中。加密表为:输入数字:0,1,2,3,4,5, 6,7,8,9;密码数字:7,5,9,1,3,6,8,0,2,4。【答】参考程序:DATA SEGMENT TABLE DB 7,5,9,1,3,6,8, 0,2,4;密码表BUFF DB 10 DUP(?) ,$ 存放转换数字的缓冲区DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT MOV AX,STACK MOV SS,AX MOV DI , OFFSET BUFF LEA BX , TABLE MOV CX,0DH RE1: MOV AH , 1 ;从键盘输入INT 21H CMP AL ,0DH JZ DONE SUB AL,30H XLAT ADD AL,30H 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - MOV DI , AL INC DI LOOP RE1 DONE: MOV DX , OFFSET BUFF MOV AH , 09H INT 21H MOV AH,4CH INT 21H CODE ENDS 4.21 编程序从键盘接收一个4 位 16 进制数,转换为10 进制数后,送显示。【答】算法 :先将输入的十六进制数保存到BX 中, BX 中的数范围在+32767-32768 之间,先检查 BX 中的符号位,以决定输出“+”还是“ -”;若是负数,应先求补,得到原码后即可与正数作统一处理。 转换方法为将被转换的二进制数先除;以 10000, 商即为万位数, 再将余数除以1000,商为千位数,依此类推,求出百、十位数,剩的为个位数。最后,将各个数加上30H,即成为对应字符。DATA SEGMENT OUT_ASC_SUM db 6 dup(?),$ DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS :CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV CX , 4 ;输入 4 次MOV DX , CX ;转换 4 次MOV BX , 0 ;用 BX 保存输入数RE1: MOV AH , 1 ;从键盘输入INT 21H CALL ZH ;通过子程序转换SHL BX , CL ;组合成十六进制数ADD BL , AL DEC DX JNZ RE1 ;循环输入四个数MOV AX,BX MOV OUT_ASC_SUM , + CMP AX , 0 JGE L4 ;不是负数,转移NEG AX MOV OUT_ASC_SUM , - L4: CWD MOV BX , 10000 DIV BX ADD AL , 30H ;将万位转换为数字(商应在AX 内,但因为商不大于9,所以有效部分在al 内)MOV OUT_ASC_SUM+1 , AL ;保存万位数字MOV AX , DX ;将余数置入AX 内,以便当作被除数CWD MOV BX , 1000 DIV BX ADD AL , 30H MOV OUT_ASC_SUM+2 , AL ;保存千位数字名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - MOV AX , DX ;将余数置入AX 内,以便当作被除数MOV BL , 100 DIV BL ADD AL , 30H MOV OUT_ASC_SUM+3 , AL ;保存百位数字MOV AL , AH CBW MOV BL , 10 DIV BL ADD AL , 30H MOV OUT_ASC_SUM+4 , AL ;保存十位数字ADD AH , 30H MOV OUT_ASC_SUM+5 , AH ;保存个位数字MOV DX , OFFSET OUT_ASC_SUM MOV AH , 09H INT 21H MOV AH,4CH INT 21H ZH PROC CMP AL , 9 ;将 ASCII 码转换为16 进制JBE A2 ;键入值 9( 0-9)则减30H CMP AL, a ;键入值 a(A- F) 则减 37H JB A1 SUB AL , 20H ;值在 a -f则先减20H,再减 37H A1: SUB AL , 7 A2: SUB AL , 30H RET ZH ENDP CODE ENDS END START (以上参考答案由黄玉清整理)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -

    注意事项

    本文(2022年2022年汇编语言程序设计习题-答案 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开