版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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)+位移量MOV A
2、X, 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)+(DI)+位移量
3、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答:(1 )两个操作数长
4、度不一致 (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码与非压缩BCD码的互相转换3) 把DX.AX中
5、的双字右移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 LOP1: OR AL, 30H INC AL CMP AL, 0AH JNE LO
6、P1 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 OR DH, AL4. 请说明下面两段程序的功能1) mov si, 600hmo
7、v di, 601hmov ax, dsmov es, axmov cx, 256stdrep movsb 2) 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,232F7H=3280H, 264E5H=2450H, 试问执行下列段内间接寻址的转移指令后,转
8、移到有效地址是什么?i. JMP BXii. JMP TABLEBXiii. JMP BXSI答: (1)1256H (2)3280H (3)2450H 6. 判断下列程序段跳转到条件(1) XOR AX, 1E1EH JE EQUAL(2) TEST AL, 10000001B JNZ THERE(3) CMP CX, 64H JB 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就是一个回文字符串,而字符串ABCFDDCAB就不是回文字符串。现在有一个字符串string,包含有16个字节的内容,请编写程序段,判
10、断该字符串是否为回文字符串。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 DI, 15 ADD DI, SI LP: MOV AL, SI CMP AL, DI JNZ NO ; 不是回文 INC
11、 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) LOOP L20(2) LOOPNE L20(3) LOOPE L20 试说明,当程序执行完时AX, BX, CX, DX四个寄存器的内
12、容分别是什么? MOV AX, 01 MOV BX, 02 MOV CX, 03 MOV DX, 04L20: INC AX ADD BX, AX SHR 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分别是多少?(用16进制来表示)(1) 0110 EB F7 JMP A10(2) 0110 EB 09 JMP A20 指令地址(16进制)
13、 指令码 汇编语句答: (1 )A10=0109H (2 )A20=011BH12. 按要求编写下面的程序段1) 将ELEMS中的100个字节数据的位置颠倒过来(即第一个字节和第100个字节的内容交换,第二个字节和第99个字节的内容交换)。2) 有两个3位的ASCII码字串ASC1和ASC2定义如下: ASC1 DB 578 ASC2 DB 694 ASC3 DB 0000请编写计算ASC3=ASC1+ASC2的程序段。3) 编写四字节ASCII码串3785与ASCII数码5相乘的程序段。答:1 ) LEA SI, ELEMS MOV DI, SI ADD DI, 99 MOV CX,50 L
14、P : 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; ; ASCII码转BCD码 MOV DL,DI SUB DL,30H ; ASCII 码转BCD码 POPF ADC AL,DL AAA ; 非压缩 BCD码加法调整 PUSHF
15、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码转 BCD码 MUL MULPLR AAM ; BCD码乘调整 ADD AL,DI AAA ; BCD码加法调整 OR AL,30H MOV DI,AL DEC DI MOV DI,AH DEC S
16、I 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_END DW ? N DB 4 DATA ENDS CODE SEGMENT PARA CODE ASSUME CS:CODE, DS: DATA START: MOV AX,DATA MOV DS,AX MOV
17、 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: CLC ;CF-0 CMP SI,DI JNE DELDATA DEC A_END ; 删除的是最后一个元素 JMP EXIT DELDATA:MOV CX,DI SUB CX,SI LP2: MOV AL,S
18、I+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开头的数组中,如果读入的字符是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 CODE SEGMENT PARA CODE ASSUME CS:CODE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡镇宿舍改造合同范例
- 代办陪护服务合同范例
- 兼职总工合同范例
- l安装合同范例
- 全款抵押车买卖合同范例
- 润滑购销合同范例
- 关于项目转让合同范例
- 中药制剂技术练习题库及答案
- 静疗练习题含答案
- 2025年庆阳货运运输驾驶员从业资格证考试试题
- 英语演讲技巧与实训学习通超星期末考试答案章节答案2024年
- 智慧水产养殖解决方案10.9
- 山东省青岛市2024-2025学年七年级上学期11月期中英语试题
- 2024年贵阳新春灯会元宵彩灯策划方案
- 刘润年度演讲2024:进化的力量
- 2024-2030年全球及中国环境健康与安全(EHS)行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2024年印刷厂管理规章制度范例(三篇)
- 材料工程管理人员个人年终工作总结范文
- ☆问题解决策略:直观分析 教案 2024-2025学年北师大版七年级数学上册
- 养老服务与安全管理作业指导书
- 2024年新人教版七年级上册数学教学课件 第六章 几何图形初步 综合与实践 设计学校田径运动会比赛场地
评论
0/150
提交评论