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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(微机原理习题4答案.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

微机原理习题4答案.docx

1、微机原理习题4答案习题4:请编写完整汇编程序:1. 内存中以BUF单元开始存放8个16位二进制数,试编程将8个数倒序后存放于BUF开始的单元,试编程;(提示:采用堆栈实现)DATA SEGMENTORG 0000HBUF DW 1111H,2222H,3333H,4444H,5555H,6666H,7777H,8888HCOUNT EQU ($-BUF)/2DATA ENDSSTACK1 SEGMENT STACK DW 256 DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,SS:STACK1,DS:DATASTART: MOV AX,DATA MO

2、V DS,AX MOV AX,STACK1 MOV SS,AX LEA SI,BUF MOV CX,COUNTLOP1: MOV AX,SI PUSH AX INC SI INC SI LOOP LOP1 LEA SI,BUF MOV CX,COUNTLOP2: POP AX MOV SI,AX INC SI INC SI LOOP LOP2CODE ENDS END START2. 将8个16位无符号数相加,结果保存在32位无符号数SUM中;DATA SEGMENTBUF DW 1111H,2222H,3333H,4444H,5555H,6666H,7777H,8888HCOUNT EQU

3、($-BUF)/2SUM DD 0DATA ENDSSTACK1 SEGMENT STACK DW 100 DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATA MOV DS,AX LEA BX,BUF MOV CX,COUNT MOV DX,0000HLOP: MOV AX,BX ADD WORD PTR SUM,AX ADC WORD PTR SUM+2,DX INC BX INC BX LOOP LOP MOV AX,4C00H INT 21HCODE ENDS END START

4、3. 以十进制形式在计算机屏幕上显示内存中的一个8位有符号数,例如:若内存单元中存放的数据为7FH,则在屏幕上显示+127,若内存单元存放的数据为0FFH,则应在屏幕上显示-1;DATA SEGMENT VAR DB 0FFH STR1 DB THE RESULT IS: $DATA ENDSSS_SEG SEGMENT STACK DW 100 DUP(0)SS_SEG ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:SS_SEGSTART: MOV AX, DATA MOV DS, AX LEA DX,STR1 MOV AH,09H INT 21H

5、 MOV DL, + CMP VAR, 0 JGE NEXT MOV DL, - NEG VAR NEXT: MOV AH,02H INT 21H MOV AL, VAR MOV BL, 10 MOV CL,0LOP1: AND AH,0 DIV BL PUSH AX INC CL CMP AL,0 JNZ LOP1LOP2: POP AX MOV DL,AH ADD DL,30H MOV AH,2 INT 21H LOOP LOP2 MOV AX, 4C00H INT 21H CODE ENDS END START4. 从键盘输入一个4位十进制数,然后以16进制形式显示在屏幕上,试编程;例如

6、:输入1 0 2 4 在屏幕上应该显示0400HDATA SEGMENT STR1 DB INPUT DATA: $ BUF DB 20 DB 4 DB 4 DUP(?) STR2 DB 0AH,0DH,THE RESULT IS: ,$ DATA ENDSSS_SEG SEGMENT STACK DB 100 DUP(0)SS_SEG ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:SS_SEGSTART: MOV AX, DATA MOV DS, AX LEA DX,STR1 MOV AH,09H INT 21H MOV AH,0AH LEA DX

7、,BUF INT 21H MOV CX,03H LEA SI,BUF+2 AND BX,0H MOV DL,0AHLOP1: MOV AL,SI SUB AL,30H PUSH CXLOP2: MUL DL LOOP LOP2 POP CX ADD BX,AX INC SI LOOP LOP1 AND CH,00H MOV CL,SI SUB CL,30H ADD BX,CX LEA DX,STR2 MOV AH,09H INT 21H MOV AX,BX AND CH,00H MOV CL,04H MOV DH,04H MOV DL,00HAAA1: AND AX,000FH PUSH AX

8、 DEC DH INC DL SHR BX,CL MOV AX,BX CMP DH,0 JA AAA1 MOV CL,DLBBB: POP DX CMP DL,09H JB NEXT ADD DL,07H NEXT: ADD DL,30H MOV AH,2 INT 21H LOOP BBB MOV DL,H MOV AH,02H INT 21H MOV AX,4C00H INT 21HCODE ENDS END START 5. 数据段中存放有一个无符号字数据VAR,将其转换成非压缩格式的BCD码,存于BUF开始的单元中(高位在前);例如:若VAR为0800H,则转换后(BUF) = 20H

9、(BUF+1) = 48HDATA SEGMENT PARA VAR DW 0800H BUF DB 2 DUP(0)DATA ENDSSS_SEG SEGMENT STACK DW 100 DUP(0)SS_SEG ENDSCODE SEGMENT PARA ASSUME CS:CODE, DS:DATA, SS:SS_SEGSTART: MOV AX, DATA MOV DS, AX MOV CX, 16 MAIN1: SHL VAR, 1 MOV BX, 4 PUSH CX MOV CX, 5MAIN2: MOV AL, BUFBX ADC AL, AL AAA MOV BUFBX, A

10、L DEC BX LOOP MAIN2 POP CX LOOP MAIN1 EXIT: MOV AX, 4C00H INT 21H CODE ENDS END START6. 内存中以str1和str2开始分别存放了两个字符串,结束符为NULL(ASCII码为0),将str2连接到str1后,形成1个字符串,并将连接后的字符串str1输出到屏幕上;DATA SEGMENT STR1 DB GOOD MORNING,00H STR DB 50 DUP(0) STR2 DB Mr WANG!,0AH,0DH,00HDATA ENDSSS_SEG SEGMENT STACK DW 100 DUP(0

11、)SS_SEG ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:SS_SEGSTART: MOV AX,DATA MOV DS,AX LEA SI,STR1 MOV AL,SI CMP AL,00H JE JP1JP2: INC SI MOV AL,SI CMP AL,00H JA JP2 JP1: MOV CX,01H LEA BX,STR2 MOV AH,BX MOV BX,AH CMP AH,00H JE JP3 MOV SI,AHJP4: INC SI INC BX INC CX MOV AH,BX MOV SI,AH CMP AH,00H J

12、A JP4JP3: INC SI MOV SI,BYTE PTR $ LEA DX,STR1 MOV AH,09H INT 21H MOV AX,4C00H INT 21HCODE ENDS END START 7. 统计10个有符号字节数中,大于0、小于0、等于0的个数,分别存放在NUM1、NUM2、NUM3三个变量中,并找出最大值、最小值分别存放到MAX、MIN变量中,再求10个数的和,将结果存放到16位有符号数SUM中。DATA SEGMENT NUM DB 0F0H,03H,0B4H,0AH,0AAH,00H,80H,7FH,99H,21H COUNT EQU ($-NUM) ORG

13、0010H NUM1 DB 0 NUM2 DB 0 NUM3 DB 0 MIN DB 0 MAX DB 0 SUM DW 0DATA ENDSSS_SEG SEGMENT STACK DW 100 DUP(0)SS_SEG ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:SS_SEGSTART: MOV AX,DATA MOV DS,AX MOV SS,AX LEA SI,NUM MOV CX,COUNT MOV BX,0000H MOV DX,0000HLOP: MOV AL,SI INC SI CMP AL,0 JG DA JL XIAO JE D

14、ENGDA: INC BH JMP AAA1XIAO: INC BL JMP AAA1 DENG: INC DH AAA1: LOOP LOP LEA SI,NUM1 MOV SI,BH LEA SI,NUM2 MOV SI,BL LEA SI,NUM3 MOV SI,DH MOV CX,COUNT-1MAIN1: LEA BX,NUM PUSH CXMAIN2: MOV AL,BX INC BX CMP AL,BX JLE NEXT XCHG AL,BX MOV BX-1,ALNEXT: LOOP MAIN2 POP CX LOOP MAIN1 LEA SI,MIN MOV AL,NUM M

15、OV SI,AL LEA SI,MAX MOV BL,NUM+9 MOV SI,BL MOV SI,OFFSET NUM MOV CX,COUNT MOV AX,0LOP2: AND BX,0 MOV BL,SI ADD AX,BX INC SI LOOP LOP2 LEA SI,SUM MOV SI,AX MOV AX,4C00H INT 21HCODE ENDS END START 8 若程序的数据段定义如下,写出各指令语句独立执行后的结果。DSEG SEGMENTDATA1 DB 10H, 20H, 30HDATA2 DW 10 DUP (?)String DB 123DSEG ENDS

16、(1) MOV AL, DATA1 10H-AL(2) MOV BX, offset DATA2 DATA2代表的首地址赋给BX(3) LEA SI, String String代表的首地址赋给BXADD DI,SI SI+DI-DI9 假设数据项定义如下:DATA1 DB HELLO!GOOD MORNINGDATA2 DB 20 DUP(?)用串操作指令编写程序段,使其分别完成一下功能。(1) 从左到右将DATA1中的字符串传送到DATA2中;LEA SI,DATA1LEA DI,DATA2MOV CX,20CLDREP MOVSB(2) 传送完后,比较DATA1和DATA2中的内容是否相

17、同;LEA SI,DATA1LEA DI,DATA2MOV CX,20CLDREPE CMPSB(3) 把DATA1中的第3个字节和第四个字节装入AX;LEA SI,DATA1ADD SI,2LODSW(4) 将AX的内容存入DATA2+5开始的字节单元中;LEA DI,DATA2ADD DI,5STOSW10 执行下列指令后,AX寄存器中的内容是多少?TABLE DW 10,20,30,40,50ENTRY DW 3MOV BX, Offset TABLEADD BX, ENTRYMOV AX,BX AX=1400H存储器11 图示以下数据段在存储器中的存放形式;10H34H07H09H42

18、H00H42H00H48H45H4CH4CH4FH21HCDHABH00H00HDATA SEGMENT DATA1DB 10H, 34H, 07H, 09H DATA2DW 2 DUP(42H) DATA3 DB HELLO!DATA4 EQU 12DATA5 DD ABCDHDATA ENDS12 阅读下边的程序段,试说明它实现的功能是什么?DATA SEGMENTDATA1 DB ABCDEFGDATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATAAAAA: MOV AX,DATA MOV DS,AX MOV BX, OFFSET DATA1 MOV CX,7NEXT: MOV AH,2 MOV AL, BX XCHG AL,DLINC BXINT 21HLOOP NEXTMOV AH,4CHINT 21HCODE ENDS END AAAA此程序功能为:输出字符串ABCDEFG。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2