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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(微机原理与接口技术楼顺天第二版第四章习题解答Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理与接口技术楼顺天第二版第四章习题解答Word格式文档下载.docx

1、 LOOP L14.5、在变量VAR1和VAR2中分别保存有两个字节型的正整数,编写完整的汇编语言程序实现:(1)当两数中有一个奇数时,将奇数存入VAR1,偶数存入VAR2; (2)当两数均为奇数时,两个变量的内容不变; (3)当两数均为偶数时,两数缩小一倍后存入原处。当VAR1为奇数时,不论VAR2的奇偶性,这两个单元的内容均不变;只有当VAR1为偶数时,如果VAR2为奇数,则VAR1与VAR2内容交换;如果VAR2为偶数,则两数缩小一倍后存入原处。DATA SEGMENT VAR1 DB 28 VAR2 DB 36DATA ENDSCODE SEGMENT ASSUME CS:CODE,

2、DS:DATA, ES:DATASTART:MOV AX, DATAMOV DS,AXMOV ES, AXMOV AL,VAR1MOV BL,VAR2TEST AL,1JZ EVEN1JMP OVER EVEN1: TEST BL,1 JZ EVEN2 MOV VAR1,BL MOV VAR2,AL JMP OVEREVEN2: SHR AL,1 MOV VAR1,AL SHR BL,1 MOV VAR2,BL OVER: MOV AH,4CH MOV AL,0 INT 21HCODE ENDS END START4.6、已知在字变量VAR1、VAR2和VAR3中保存有3个相同的代码,但有一个

3、错码,编写程序段找出这个错码,并将它送到AX,其地址送SI;如果3个代码都相同,则在AX中置1标志。在数据段中定义:VAR1 DW 5A34HVAR2 DW 5A35HVAR3 DW 3A34H 在代码段中编写程序段:MOV AX,-1MOV BX,VAR1CMP BX,VAR2JZ L2CMP BX,VAR3JZ L1MOV AX,BXLEA SI,VAR1MOV AX,VAR2LEA SI,VAR2JZ OVERMOV AX,VAR3LEA SI,VAR3OVER:4.7、分析下列程序段的功能:MOV CL,04SHL DX,CLMOV BL,AHSHL AX,CLSHR BL,CLOR

4、DL,BL解:程序段完成DX:AX组成的32位无符号数左移4位,低位补零(也即除以16)。4.8、阅读下列程序段,指出它完成什么运算。 CMP AX, 0 JGE EXIT NEG AXEXIT: 取AX的绝对值。4.9、答:将DX中的值转换为相应的ASCII码字符存入DISP对应的4字节存储单元中。例如DX=3F0BH,则在DISP中存放3, F0B。4.10、答:将FIRST和SECOND数据相加,结果存入FIRST中,FIRST中的结果为:10H,61H,01H。4.11、答:将从390H端口读入的数据的低4位转换为对应16进制数的ASCII码,然后往390H端口输出。例如读入的数据为2

5、9H,则输出9, 读入的数据为1BH,则输出4.12、答:实际上完成BX内容循环右移2位,因此,BX寄存器的内容为C02DH。4.13、答:完成BX内容逻辑右移5位,因此,BX寄存器的内容为03EAH。4.14、答:(1)AX=FFF3H,DX=FFFAH;(2)AX=1FF2H,DX=0002H4.15、答:AX=FFFCH,BX=200AH,CX=0008H,DX=2010H,SI=2000H4.16、答:LEA SI,BUFFERSLEA DI,BUFFERTMOV CX,NADD DI,NSUB DI,2MOV AX,SIMOV DI,AXADD SI,24.17、答:ENCRPYTI

6、ON PROC NEAR LEA SI,ARRAY MOV AX,SI MOV BX,5 DIV BX MOV CX, AX ADD SI, 2 MOV AX, SI XOR AX,0AAAAH MOV SI, AX ADD SI,10 LOOP L1 RETENCRPYTION ENDP4.18、答:DATA SEGMENT ARRAY DB 12,28,128,35,46,69,120,89,93,100,112,125,200DATA ENDSCODE,DS: MOV AX,DATA MOV DS,AX XOR CX,CX MOV CL,ARRAY ;数据个数存入AX MOV SI,OF

7、FSET ARRAY+1 ;SI存放第一个数的偏移地址 XOR AX,AX ;AX用来存放和,首先清零XH: XOR BX,BX MOV BL,SI ADD AX,BX JNC BUYICHU ADD DX,1BUYICHU: LOOP XH CMP DX,0 JZ OVER MOV DX,-1 HLTEND START4.19、答:程序如下:LEA SI,BUFMOV DX,AXADD SI,2CMP AX,SIJBE NOCHG1XCHG AX,SINOCHG1:CMP DX,SIJAE NOCHG2XCHG DX,SINOCHG2: ADD SI,2LOOP L1如果BUF中存放的是有符

8、号数,则只需要将程序中的两行内容修改:JBE NOCHG1 改成:JLE NOCHG1JAE NOCHG2 改成:JGE NOCHG24.20、答:设BUFFER中存放的是字节型数据。采用双指针方法:SI为读指针,DI为写指针,从低地址开始,内存中读出一个字节,如果不为0,则写入内存;如果为0,则不进行写操作。LEA SI, BUFFERXOR CX,CXMOV CL, SIINC SIMOV DI, SIXOR BH,BH XOR AL,ALCMP SI,ALMOV BL,SIMOV DI,BLINC DIINC BHMOV BUFFER,BH4.21、答:MOV CX,N MOV BX,B

9、UF1 MOV SI,0 MOV DI,OFFSET PRODUCT MOV AX,BUFNSI PUSH AX MUL BX MOV DI,AX ;乘积低位字 ADD DI,2 MOV DI,DX ;乘积高位字 POP AX DIV BX MOV QUOTIENTSI,AX ;商 MOV REMAINDERSI,DX ;余数4.22、答:统计AL中1的个数,只需将AL右移,移出的一位内容进行累加,子程序为:COUNTBYTE PROC NEAR PUSH CX XOR BL,BLCOU1: ADC BL,0 LOOP COU1 POP CX RETCOUNTBYTE ENDP 在此基础上,可

10、以检测出字节型缓冲区BUF中0和1个数相等的元素个数,即一个字节中有4个1。设BUF中有N个字节型数据,结果保持在BH中。LEA SI, BUFXOR BH,BH MOV AL,SICALL COUNTBYTECMP BL,4JNZ L2INC BH INC SI4.23、答:4.24、答:4.25、答:;产生N个伪随机数 MOV CX,N MOV SI,OFFSET NUM XOR AH,AH MOV AL,23 MOV SI,AL PUSH AX ADD AX,0 JNP FEIJISHU INC CNT ADD SUMODD,AXFEIJISHU: POP AX ADD AL,17 IN

11、C SI4.26、答:4.27、答:4.28、答:4.29、答:4.30、答:4.31、答:4.32、答:4.33、答: STACK SEGMENT STACK STACK DW 100H DUP(? TOP LABEL BYTESTACK ENDSBUFFER DB 3 ;首字节为字符串长度 DB ABC ;字符串DATA,ES:DATA,SS:STACK MOV AX,STACK MOV SS,AX LEA SP,TOP MOV ES,AX LEA DI,BUFFER MOV CL,DI INC DI CALL SETEVEN MOV AH,4CH ;返回DOS MOV AL,0 INT

12、21HSETEVEN PROC NEAR ;加偶校验子程序 PUSH AX PUSH BX PUSH CX PUSH DISETEVEN1: MOV AL,DI CALL COUNTBYTE AND BL,01H JZ SETEVEN2 OR AL,80H MOV DI,ALSETEVEN2: LOOP SETEVEN1 POP DI POP BXSETEVEN ENDPCODE ENDS4.34、答: MOV AX,SI2*N TEST AX,8000H MOV AX,SI MOV SI,AXNOP4.35、答:设奖斐波那契数列存放在字变量RESULT中。在数据段中定义 RESULT DW

13、100H DUP(?在代码段中编写子程序FIBONACCI PROC NEAR XOR DI,DI MOV RESULTDI,1 ;前两个数为1 MOV RESULTDI+2,1 ADD DI,4 MOV AX, RESULTDI-4 ADD AX, RESULTDI-2 MOV RESULTDI,AXFIBONACCI ENDP4.36、答:在数据段中定义变量:TABLE DW INFORM1, INFORM2, INFORM3, INFORM4, INFORM5 DW INFORM6, INFORM7, INFORM8, INFORM9, INFORM10 MOV CX,10 XOR SI

14、,SI MOV DX,TABLESI MOV AH,9 ADD SI,2 CALL WAIT LOOP L1这里,WAIT为延时子程序,用于在显示信息之间的停顿。4.37、答:先编写一个子程序DISPALD,完成以3位十进制数形式显示出AL的内容。DISPALD PROC NEARPUSH AXPUSH CXPUSH DXXOR AH,AHMOV CL,100DIV CLMOV DL,30HADD DL,ALMOV AH,2INT 21HPOP AXMOV AL,AHMOV CL,10ADD DL,AHPOP DXPOP CXRETDISPALD ENDP在此基础上,根据题目要求,需要用到3个

15、指针:SI指向源数组ARRAY,DI指向正数数组ARRAYP,BX指向负数数组ARRAYN。 MOV CX,20 XOR DX,DX LEA SI,ARRAY LEA DI,ARRAYP LEA BX,ARRAYN MOV AL,SI AND AL,AL JS L2 MOV DI,AL INC DI INC DL JMP L3 MOV BX,AL INC BX INC DH INC SI LOOP L1 MOV AL,DL CALL DISPALD MOV AL,DH4.38、答:设BUFFER中存放的是有符号数。 MOV CX,100 LEA SI,BUFFER MOV AX, 7FFFH

16、AND WORD PTR SI,1 JNZ L2 CMP SI,AX JGE L24.39、答:BL用于存放项数。STACK SEGMENT STACK DW 100H DUP(?TOP LABEL WORDSTACK ENDS DB 100H DUP(?CODE SEGMENTDATA, SS: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX LEA SP,TOP MOV BL,1 MOV CX,0 COUNT: MOV AL, BL MUL BL ADD CX,AX CMP CX,2000 JA EXIT INC BL JMP

17、COUNT4.40、答:设数据段的段名为SEGNAME,则有SEGINTODS MOCRO SEGNAME MOV AX, SEGNAME MOV DS,AX ENDMSEGINTOES MOCRO SEGNAME MOV ES,AX4.41、答:设输入字符串保存在BUFIN中,则有:INSTR MACRO BUFIN MOV AH, 10 LEA DX, BUFIN INT 21H ENDM 应该注意,BUFIN为键盘缓冲区,应该满足格式要求,详见INT 21H的10号功能说明。4.42、答:CRLF MACRO MOV AH, 02 MOV DL, 10 MOV DL, 134.43、答:

18、设DF=0(1) L1: MOV AL, SI MOV ES:DI, AL INC SI INC DI LOOP L1(2) L1:(3) L1: MOV ES:DI, AL (4) L1: CMP AL, ES:DI4.44、答: STR1中有17个字符(含一个空格),设DS和ES均指向STR1和STR2所在的段。(1) CLD MOV CX,17 LEA SI,STR1 LEA DI,STR2 REP MOVSB(2) MOV CX,17 ADD SI,CX DEC SI MOV AL,SI MOV DI,AL INC DI(3) LEA SI,STR1 MOV DX,SI+6(4) MO

19、V CX,17 MOV AL,20H CMP SI, AL JZ L2 INC SI4.45、答: STRING中保存了30个字符。 MOV CX,30 LEA SI,STRING MOV AL,& CMP SI,AL JNZ L2 MOV BYTE PTR SI,/4.46、答:将缓冲区FIRST中100个字节传送到SECOND中。4.47、答:在缓冲区STRING中搜索非空格字符,如果有非空格则转到FOUND,如果200个单元中都是空格,则转到NOT_FOUND。4.48、答:设DS和ES均指向字符串OLDS和NEWS所在的段。 CLDMOV CX,5 LEA SI,OLDS LEA DI

20、,NEWS REPZ CMPSB JNZ NEW_LESS4.49、答:设STRING中的字符个数为N。 MOV CX,N MOV AL,5FH AND SI,AL4.50、答:利用字符串操作指令比较方便,也可以采用循环完成。(1) TASK1 MOV CX, 50 MOV AL, 20H LEA DI, STUDENT_PRINT REP STOSB(2) TASK2 MOV CX, 9 MOV AL, _ LEA DI, STUDENT_ADDR REPNZ SCASB JZ FOUNDNOT_FOUND: FOUND: (3) TASK3 MOV CX, 9 ADD DI, CX STD(4) TASK4 MOV CX, 30 LEA DI, STUDENT_ NAME R

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1