汇编语言补充作业和答案分析解析.doc

上传人:h**** 文档编号:1373371 上传时间:2019-02-23 格式:DOC 页数:12 大小:62.50KB
下载 相关 举报
汇编语言补充作业和答案分析解析.doc_第1页
第1页 / 共12页
汇编语言补充作业和答案分析解析.doc_第2页
第2页 / 共12页
汇编语言补充作业和答案分析解析.doc_第3页
第3页 / 共12页
汇编语言补充作业和答案分析解析.doc_第4页
第4页 / 共12页
汇编语言补充作业和答案分析解析.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、微机系统与接口技术汇编补充作业1. 寻址方式小结。请根据已填的格式,完成下面表中的空白部分:寻址方式 操作数物理地址(PA) 指令格式举例立即寻址 操作数由指令给出 MOV DX, 100H; (DX )100寄存器寻址 操作数在寄存器中 MOV AX, BX; (AX)(BX)直接寻址 操作数的有效地址由指令直接给出MOV AX, 1234H 寄存器间接寻址(BX)PA=(DS)16+(SI)(DI)或=(SS)16+(BP)MOV AX, BX MOV AX, SI MOV AX, DI MOV AX, BP 基址寻址 PA=(DS) 16+(BX)+位移量 PA=(SS) 16+(BP)

2、+位移量MOV AX, BUFFBX MOV AX, BUFFBP 变址寻址 PA=(DS) 16+(SI)+ 位移量 PA=(DS) 16+(DI)+ 位移量MOV AX, BUFFSI MOV AX, BUFFDI基址变址寻址PA=(DS) 16+(BX)+(SI) PA=(DS) 16+(BX)+(DI) PA=(SS) 16+(BP)+(SI) PA=(SS) 16+(BP)+(DI) MOV AX, BXSI MOV AX, BX+DI MOV AX, BPSI MOV AX, BP+DI 基址变址相对寻址PA=(DS)16+(BX)+(SI) +位移量 PA=(DS)16+(BX)

3、+(DI)+位移量 PA=(SS)16+(BP)+(SI) +位移量 PA=(SS)16+(BP)+(DI)+位移量MOV AX, BUFFBXSI MOV AX, BUFFBX+DI MOV AX, BUFFBPSI MOV AX, BUFFBP+DI2.指出下列 8088 指令的错误:(1) MOV AH, BX(2) MOV BX, SI(3) MOV AX, SIDI(4) MOV MYDATBXSI, ES:AX(5) MOV BL, 1000(6) MOV CS, AX(7) MOV DS, BP(8) XLAT BX(9) IN AX, 0382H(10) OUT AX, 20H

4、答:(1 )两个操作数长度不一致 (2 )两个操作数不能都是存储器操作数 (3 )变址寻址方式不能使用两个变址寄存器 (4 )寄存器寻址没有段超越用法 (5 )两个操作数长度不一致(或 1000 超出字节数据范围) (6 )CS 不能做目的寄存器(7)段寄存器只能由通用寄存器对其操作,BP 不能对通用寄存器进行操作(8 )XLAT 中 BX 是隐含操作数(9 )IN 指令中 16 位端口地址要用 DX 作为操作数(10)OUT 指令两个操作数反了3. 按要求编写下面的程序段1) 利用移位指令计算 DX=3AX7BX,假设为无符号数运算,无进位。2) 用逻辑运算指令实现数字 09 的 ASCII

5、 码与非压缩 BCD 码的互相转换3) 把 DX.AX 中的双字右移 4 位4) 假设从 4A00H:0000 开始的 4 个字节中存放了 4 个非压缩的 BCD码,现在按照低地址对低位,高地址对高位的原则,将他们合并到 DX 中。答:1)MOV CX, AX SHL AX, 1 ; AX*2 ADD AX, CX ; AX*3 MOV DX, BX MOV CL, 3 SHL DX, CL ; BX*8 SUB DX, BX ; BX*7 ADD DX, AX 2)MOV AL, 0 LOP: AND AL, 0FH INC AL CMP AL, : JNE LOP MOV AL, 0 LO

6、P1: OR AL, 30H INC AL CMP AL, 0AH JNE LOP1 3) MOV CL, 4 SHR AX,CL MOV BL, DL SHR DX, CL SHL BL, CL OR AH, BL 4)MOV AX, 4A00H MOV DS, AX MOV CL, 4 MOV SI, 0 MOV AL, SI AND AL, 0FH MOV DL, AL INC SI MOV AL, SI SHL AL, CL OR DL, AL INC SI MOV AL, SI AND AL, 0FH MOV DH, AL INC SI MOV AL, SI SHL AL, CL O

7、R DH, AL4. 请说明下面两段程序的功能1) mov si, 600hmov di, 601hmov ax, dsmov es, axmov cx, 256stdrep movsb2) cldmov ax, 0fefhmov cx, 5mov bx, 3000hmov es, bxmov di, 2000hrep stosw答:1 )从 DS:600H 开始将向低地址方向的 256 字节向高地址移动一个字节位置。 2 )从 3000:2000h 开始连续存放 5 个 0fefh 5. 假设 DS=2000H. BX=1256H, SI=528FH, 位移量TABLE=20A1H,232F

8、7H=3280H, 264E5H=2450H, 试问执行下列段内间接寻址的转移指令后,转移到有效地址是什么?i. JMP BXii. JMP TABLEBXiii. JMP BXSI答: (1)1256H (2)3280H (3)2450H 6. 判断下列程序段跳转到条件(1) XOR AX, 1E1EHJE EQUAL(2) TEST AL, 10000001BJNZ THERE(3) CMP CX, 64HJB THERE答:(1) (AX)=1E1EH (2) (AL) 的最高位和/ 或最低位为 1 (3) (CX)64H 7. 如果条件跳转指令的跳转目标范围超出128127 的范围,该

9、如何处理?举例说明。答:可以把跳转条件做一些调整,利用无条件跳转的跳转范围大,来达到目的,如: CMP AX, 33 JE LONG ; 大于 127 字节 LONG: 改为: CMP AX, 33 JNE SHOETER JMP LONG SHORTER:; 大于 127 字节 LONG:8. 按要求编写下面的程序段1) 当 DX 高 4 位全为 0 时,使 AX0,否则 AX-1。2) 已知字符串 string 包含有 256BYTE 的内容,将其中所有的 $符号替换成空格( ) 。3) 所谓回文字符串是指一个字符串正读和倒读都是一样的,例如字符串ABCDEFFEDCBA就是一个回文字符串

10、,而字符串ABCFDDCAB就不是回文字符串。现在有一个字符串string,包含有 16 个字节的内容,请编写程序段,判断该字符串是否为回文字符串。4) 统计以$字符结束的字符串 string 的字符个数。答: 1 ) TEST DX, 0F0H JZ OK1 XOR AX, AX JMP OK2 OK1:MOV AX, -1 Ok2: 2 ) MOV CX, 256 MOV AL, $ MOV AH, LEA BX, string LP: CMP BX, AL JNZ NEXT MOV BX, AH NEXT:INC BX DEC CX JNZ LP 3) LEA SI,string MOV

11、 DI, 15 ADD DI, SI LP: MOV AL, SI CMP AL, DI JNZ NO ; 不是回文 INC SI DEC DI CMP SI, DI JB LP ; 是回文 NO: ; 不是回文 4) MOV CX,0 ;放字符个数 LEA SI, string LP: MOV AL, SI CMP AL, $ JE EXIT INC SI INC CX JMP LP EXIT:9. 设置 CX0,则 LOOP 指令将执行多少次?例如:mov cx, 0delay: loop delay答:将执行 65536 次10. 在下面程序段的括号中如果分别放上下面的指令(1) LOO

12、P L20(2) LOOPNE L20(3) LOOPE L20试说明,当程序执行完时 AX, BX, CX, DX 四个寄存器的内容分别是什么?MOV AX, 01MOV BX, 02MOV CX, 03MOV DX, 04L20: INC AXADD BX, AXSHR DX, 1( )RET答: (1 ) (AX)=4, (BX)=11, (CX)=0, (DX)=0 (2 ) (AX)=4, (BX)=11, (CX)=0, (DX)=0 (3 ) (AX)=2, (BX)=4, (CX)=2, (DX)=2 11. 下面两条短转移指令的转移地址 A10 和 A20 分别是多少?(用

13、16 进制来表示)(1) 0110 EB F7 JMP A10(2) 0110 EB 09 JMP A20指令地址(16 进制) 指令码 汇编语句答: (1 )A10=0109H (2 )A20=011BH12. 按要求编写下面的程序段1) 将 ELEMS 中的 100 个字节数据的位置颠倒过来(即第一个字节和第 100 个字节的内容交换,第二个字节和第 99 个字节的内容交换) 。2) 有两个 3 位的 ASCII 码字串 ASC1 和 ASC2 定义如下:ASC1 DB 578ASC2 DB 694ASC3 DB 0000请编写计算 ASC3=ASC1+ASC2 的程序段。3) 编写四字节

14、 ASCII 码串3785与 ASCII 数码5相乘的程序段。答:1 ) LEA SI, ELEMS MOV DI, SI ADD DI, 99 MOV CX,50 LP : MOV AL, SI XCHG AL, DI XCHG AL, SI INC SI DEC DI DEC CX JNZ LP 2) CLC ; 清 CF PUSHF LEA SI,ASC1+2 ; 从个位开始加,DB 578 等同于 DB 5,7,8 LEA DI,ASC2+2 LEA BX,ASC3+3 MOV CX,3 ; 计算的数有位 A20: MOV AH,0 MOV AL,SI SUB AL,30H; ; AS

15、CII 码转 BCD 码 MOV DL,DI SUB DL,30H ; ASCII 码转 BCD 码 POPF ADC AL,DL AAA ; 非压缩 BCD 码加法调整 PUSHF ADD AL,30H ; BCD 码转 ASCII 码 MOV BX,AL DEC SI DEC DI DEC BX LOOP A20 POPF ADD AH,30H MOV BX,AH 3) MOV CX,4 LEA SI,MULCND+3 LEA DI,PRODUCT+4 AND MULPLR,0FH ; ASCII 码转 BCD 码 A30: MOV AL,SI AND AL,0FH ; ASCII 码转

16、BCD 码 MUL MULPLR AAM ; BCD 码乘调整 ADD AL,DI AAA ; BCD 码加法调整 OR AL,30H MOV DI,AL DEC DI MOV DI,AH DEC SI LOOP A30 OR BYTE PTR DI,30H13. 请编写完整程序在一个升序字节数组中查找数 N,找到后将此数从数组中删除,并使得 CF=0;没找到返回 CF1。数组的首地址和末地址为 A_HEAD 和 A_END。答: DATA SEGMENT PARA DATA A_HEAD DW ? BUFF DB 1,2,3,4,5,6,7,8,9,0 COUNT EQU $-BUFF A_

17、END DW ? N DB 4 DATA ENDS CODE SEGMENT PARA CODE ASSUME CS:CODE, DS: DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFF MOV A_HEAD,SI MOV AL,COUNT CBW ADD AX,SI MOV DI,AX DEC DI MOV A_END,DI MOV AL,N LP: CMP AL,SI JNE NEXT JMP DEL NEXT: INC SI ;考察下一个数据 CMP SI,DI JBE LP ; 循环 STC ;CF-1 JMP EXIT DEL:

18、 CLC ;CF-0 CMP SI,DI JNE DELDATA DEC A_END ; 删除的是最后一个元素 JMP EXIT DELDATA:MOV CX,DI SUB CX,SI LP2: MOV AL,SI+1 ; 该循环将 SI+1 到 DI 位置的数据移动到 SI 到 DI-1 的位置 MOV SI,AL INC SI LOOP LP2 DEC A_END ; 调整结尾指针 EXIT: MOV AH,4CH INT 21H CODE ENDS END START14. 请编写完整程序从键盘读取字符,如果是十进制的09则在屏幕上输出该数的 8 位二进制码,并将数字依次存放到 BUF

19、开头的数组中,如果读入的字符是Q或者q ,则程序退出,其他情况在屏幕上打印“You must input 09, or q or Q”。(如输入的字符是9 ,则输出“00001001” )提示:语句“You must input 09, or q or Q”定义成以$结尾的字符串,键盘输入和屏幕输出,请参看教材后的 DOS 功能调用(int 21h)的相关功能。输出一个数的 2 进制形式应该从最高位开始输出,可以将此段程序定义成一个过程。答: ;“You must input 09, or q or Q“。 DATA SEGMENT PARA DATA sentence db You must input 09, or “q“ or “Q“,$ buf db 20 dup(?) DATA ENDS

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。