ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:62.50KB ,
资源ID:1373371      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1373371.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言补充作业和答案分析解析.doc)为本站会员(h****)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

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

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个工作日内予以改正。