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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理实验答案汇编.docx

1、微机原理实验答案汇编 1 题目:编程将(AX)2387、(BX)192FH、(CX)9256中的无符号数按由大到小排序,上机编程调试出程序,并将程序及排序结果记录在下面。CODE SEGMENTASSUME CS:CODESTART:MOV AX,2387MOV BX,192FHMOV CX,9256CMP AX,BXJAE NEXT1XCHG AX,BXNEXT1:CMP AX,CXJAE NEXT2XCHG AX,CXNEXT2:CMP BX,CXJAE NEXT3XCHG BX,CXNEXT3:MOV AH,4CHINT 21HCODE ENDSEND START2 题目:编程将(BX)

2、8600H、(CX)3489H、(DX)9235按有符号数由大到小排序,上机编程调试出程序,并将程序及排序结果记录在下面。;CODE SEGMENTASSUME CS:CODESTART:MOV BX,8600hMOV CX,3489HMOV DX,9235CMP BX,CXJGE NEXT1XCHG BX,CXNEXT1:CMP BX,DXJGE NEXT2XCHG BX,DXNEXT2:CMP CX,DXJGE NEXT3XCHG CX,DXNEXT3:MOV AH,4CHINT 21HCODE ENDSEND START3 题目:在数据段中定义如下数据:32,34,89H,,编程将以上数

3、据按有符号数进行排序,并将程序和结果记录下来。DATA SEGMENTNUM DB 32,34,89HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATSTART:MOV AX,DATAMOV DS,AX ;初始化DSLEA BX,NUM ;取有效地址到BX,以便访问要排序的数MOV AL,BXCMP AL,BX+1JGE NEXT1 ;若第一个数大则跳转,否则将第一个与第二个数交换XCHG AL,BX+1MOV BX,ALNEXT1:CMP AL,BX+2JGE NEXT2;若第一个数大则跳转,否则将第一个与第三个数交换XCHG AL,BX+2MOV BX,

4、ALNEXT2:MOV AL,BX+1;将第二个和第三个数比较CMP AL,BX+2JGE NEXT3;若第二个数大则跳转,否则将第二个与第三个数交换XCHG AL,BX+2MOV BX+1,ALNEXT3:MOV AH,4CHINT 21HCODE ENDSEND START4 题目:在数据段中定义如下数据:99,25,86,编程将以上数据按无符号数进行排序,上机调试出程序,并将程序和结果记录下来。 data segmentnum db 99h,25h,86hdata endscode segmentassume cs:code,ds:datastart:mov ax,data mov ds

5、,ax lea bx,num mov al,bx cmp al,bx+1 jae next1 xchg al,bx+1 mov bx,al next1:cmp al,bx+2 jae next2 xchg al,bx+2 movbx,alnext2:mov al,bx+1 cmp al,bx+2 jae next3 xchg al,bx+2 mov bx+1,alnext3: mov ah,4ch int 21hcode endsend start 5 题目:(AL)=86H,(AH)=34H,(BL)=78H,编程将以上数据按有符号数进行排序,上机调试出程序,并将程序和结果记录下来。code

6、 segmentassume cs:codestart: mov al,86h mov ah,34h mov bl,78h cmp al,ah jae next1 xchg al,ahnext1: cmp al,bl jae next2 xchg al,blnext2: cmp ah,bl jae next3 xchg ah,blnext3: mov ah,4ch int 21hcode endsend start6 题目:中断向量为:1234:5678H,编程将此中断向量写入类型0所在的中断向量表,上机调试出程序,并将程序和结果记录下来。(直接用MOV 指令写入即可)code segment

7、assume cs:code,ds:codestart:xor ax,ax mov ds,ax mov bx,0 mov cl,2 shl bx,cl mov word ptrbx,5678h mov word ptrbx+2,1234h mov ah,4ch int 21hcode endsend start7 题目:中断向量为:3456:6678H,编程将此中断向量写入类型60H所在的中断向量表,上机调试出程序,并将程序和结果记录下来。(直接用MOV 指令写入即可)CODE SEGMENTASSUME CS:CODE,DS:CODESTART:XOR AX,AXMOV DS,AX ;初始化

8、DS,中断向量表在0段MOV BX,60HMOV CL,2SHL BX,CL ;让中断类型化左移两位,以便实现乘以4作为中断向量地址MOV WORD PTR BX,5678HMOV WORD PTR BX+2,1234HMOV AH,4CHINT 21HCODE ENDSEND START8 题目:中断向量为:编程将中断向量类型60H所对应的中断向量从中断向量表中取出来分别放在ES和DI中,上机调试出程序,并将程序和结果记录下来。(直接用MOV 指令即可) CODE SEGMENTASSUME CS:CODE,DS:CODESTART:XOR AX,AXMOV DS,AX ;初始化DS,中断向

9、量表在0段MOV BX,60HMOV CL,2SHL BX,CL ;让中断类型化左移两位,以便实现乘以4作为中断向量地址MOV DI,WORD PTR BXMOV ES,WORD PTR BX+2MOV AH,4CHINT 21HCODE ENDSEND START9 题目:中断向量为:编程将中断向量类型21H所对应的中断向量从中断向量表中取出来分别放在SI和BP中,上机调试出程序,并将程序和结果记录下来。(直接用MOV 指令即可)code segmentassume cs:code,ds:codestart:xor ax,ax mov ds,ax mov bx,21h mov cl,2 sh

10、l bx,cl mov si, word ptrbx mov bp,word ptrbx+2 mov ah,4ch int 21hcode endsend start 10 题目:中断向量为:编程将中断向量类型45H所对应的中断向量从中断向量表中取出来分别放在DI和BP中,上机调试出程序,并将程序和结果记录下来。(直接用MOV 指令即可)code segmentassume cs:code,ds:codestart:xor ax,ax mov ds,ax mov bx,45h mov cl,2 shl bx,cl mov di, word ptrbx mov bp,word ptrbx+2 m

11、ov ah,4ch int 21hcode endsend start 11 题目:利用实验箱中的8255并口芯片实现1个发光二极管的闪烁。io8255a equ 288hio8255b equ 28bhio8255c equ 28ahcode segmentassume cs:codestart: mov dx,28bh mov al,80h out dx,al mov cx,5disp: mov al,03h out dx,al push cx mov cx,10hdelay: loop delay pop cx mov al,02h out dx,al loop disp mov ah,

12、4ch int 21hcode endsend start 12 题目:在交通灯实验中请使用8255的C口 按位置1/置0 的功能实现如下现象: 南北路口的绿灯、东西路口的红灯同时亮30秒左右。io8255a equ 288hio8255b equ 28bhio8255c equ 28ahcode segmentassume cs:codestart: mov dx,28bh mov al,80h out dx,aldisp: mov al,0bh out dx,al mov al,05h out dx,al mov cx,2000hde1: mov di,9000hde0: dec di j

13、nz de0 loop de1 mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h mov ah,4ch int 21hcode endsend start 13 .题目:在交通灯实验中,请使用8255的C口 按位置1/置0 的功能实现如下现象:东西路口的黄灯闪烁5次。;设8255的CS片选地址接280H-287H;PC1接黄色发光二极管CODE SEGMENTASSUME CS:CODESTART:MOV DX,28bHMOV AL,80HOUT DX,AL ;8255初始化MOV CX,5DISP:MOB AL,03HOUT DX,AL ;PC1通过控制端口置位

14、,点亮黄灯PUSH CX ;暂时保存CX值,因为下面的循环要用到MOV CX,100HDELAY:LOOP DELAY ;延时循环,可以调节POP CXMOV AL,02HOUT DX,AL ;PC1通过控制端口清零,熄灭黄灯LOOP DISP ;总共循环5次,黄灯亮灭5次,即闪烁5次MOV AH,4CHINT 21HCODE ENDSEND START14. 题目:利用8255A的PC7产生负脉冲:io8255a equ 288hio8255b equ 28bhio8255c equ 28ahcode segmentassume cs:codestart: mov dx,28bh mov a

15、l,80h out dx,al mov cx,10disp: mov al,03h out dx,al push cx mov cx,10hdelay: loop delay pop cx mov al,02h out dx,al loop disp mov ah,4ch int 21hcode endsend start15. 题目:在使用8个开关控制8个LED的实验中,请利用8255的A口 作为输入端口,C口作为输出端口实现原来的实验现象。io8255a equ 288hio8255b equ 28bhio8255c equ 28ahcode segment assume cs:codes

16、tart: mov dx,io8255b ;设8255为C口输出,A口输入 mov al,90h out dx,alinout: mov dx,io8255a ;从A口输入一数据 in al,dx mov dx,io8255c ;从C口输出刚才自A口 out dx,al ;所输入的数据 mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h jz inout ;若无,则继续自a口输入,c口输出 mov ah,4ch ;否则返回 int 21hcode ends end start16. 题目:在交通灯实验中,请使用8255的C口 按位置1/置0 的功能实现如下现象:南北

17、路口的红灯、东西路口的绿灯同时亮30秒左右。 io8255a equ 288hio8255b equ 28bhio8255c equ 28ahcode segmentassume cs:codestart: mov dx,28bh mov al,80h out dx,aldisp: mov al,0fh out dx,al mov al,01h out dx,al mov cx,2000hde1: mov di,9000hde0: dec di jnz de0 loop de1 mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h mov ah,4ch int 21h

18、code endsend start17. 题目:在交通灯实验中,请使用8255的C口 按位置1/置0 的功能实现如下现象:南北路口的黄灯闪烁5次。io8255a equ 288hio8255b equ 28bhio8255c equ 28ahcode segmentassume cs:codestart: mov dx,28bh mov al,80h out dx,al mov cx,5disp: mov al,0ch out dx,al push cx mov cx,10hdelay: loop delay pop cx mov al,0bh out dx,al loop disp mov

19、 ah,4ch int 21hcode endsend start 18. 题目: 在模/数转换器实验中,实现以下条件下的A/D转换,模拟量的输入通道:IN1;A/D转换器的地址:2B8H;显示结果中不出现大写字母。CODE SEGMENTASSUME CS:CODESTART:XOR AX,AXMOV DX,2B9H ;2B8H为IN1的地址 OUT DX,AL ;启动A/D转换NOPNOPIN AL,DXMOV BL,AL; 暂时保存读入的值,因为后面显示时会修改AL的值MOV DL,ALMOV CL,4ROL DL,CL ;将要显示的高四位移到低四位去AND DL,0FH ;将高四位清掉

20、,目的显示原读入数据的高四位,即当前DL中的低四位ADD DL,30HCMP DL,39HJBE NEXTADD DL,27H ;若是十六进制数A-F,则加27H,显示对应小写字母NEXT:MOV AH,02HINT 21H ;显示A/D转换结果的高四位MOV DL,BLAND DL,0FHADD DL,30HCMP DL,39HJBE NEXT1ADD DL,27H ;若是十六进制数A-F,则加27H,显示对应小写字母NEXT1:MOV AH,02HINT 21H ;显示A/D转换结果的低四位MOV AH,4CHINT 21HCODE ENDSEND START 19. 题目:利用可编程计数

21、定时器8253A的计数器0和计数器2,输出100Hz的的信号,连接必要的连线,编写初始化程序。上机调试出程序,并将程序记录下来。 CODE SEGMENTASSUME CS:CODESTART:MOV DX,283HMOV AL,00010110B;计数器0的模式字,只写低八位,工作方式3,计数初值为二进制OUT DX,AL ;写计数器0的工作模式字MOV AL,100MOV DX,280HOUT DX,AL ;写计数器0的计数初值,二进制,只写低八位MOV DX,283H;此句新添加,对计数器2的初始化模式字应写入到控制端口MOV AL,10010110B;计数器2的模式字,只写低八位,工作

22、方式3,计数初值为二进制OUT DX,AL ;写计数器2的工作模式字MOV AL,100MOV DX,282HOUT DX,AL ;写计数器2的计数初值,二进制,只写低八位,至此已完成初始化MOV AH,4CHINT 21HCODE ENDSEND START20. 题目:利用可编程计数定时器8253A的计数器1和计数器2,输出50Hz的的信号,连接必要的连线,编写初始化程序。上机调试出程序,并将程序记录下来。code segmentassume cs:codestart:mov dx,283h mov al,01010110b out dx,al mov al,200 mov dx,281h

23、 out dx,al mov al,10010110b out dx,al mov al,200 mov dx,280h out dx,al mov ah,4ch int 21hcode endsend start 21. 用A命令汇编一条INT 21H 指令,用命令T单步执行该指令, 比较指令执行前后CS和IP、堆栈指针SP及堆栈内容变化情况。提示:注意21H这个中断类型号 与中断向量地址、中断向量的关系,注意执行中断时要压入堆栈保护的内容:FR、CS、IP22. 用命令A汇编下列程序段 ,用命令T 跟踪执行,判断程序段能否完成指定功能。程序段完成将DS:2000H开始的 5 个字节内存内容

24、相加,并把相加的结果存放在 DS:2005H 和 DS:2006H 内存单元中,注意:要考虑进位。MOV CX,5 MOV AL,0 MOV BX,2000H next: ADD AL,BX INC BX DEC CX LOOP next ; (CX)-1 (CX), (CX)0转nextMOV BX,AL 答案:MOV CX,5 MOV AL,0 MOV BX,2000HCLC ;应加清进位命令 MOV AH,0 ;2008年12月份修改next: ADD AL,BX ;原先为ADD命令 ADC AH,0INC BX DEC CX ;这一句是多余的,应删除掉,因为loop里面隐含了CX=CX

25、-1 LOOP next ; (CX)-1 (CX), (CX)0转nextMOV BX,AL ;保存和MOV AL,0ADC AL,0 ;将进位加到AL中MOV BX+1 ,AH;保存进位23. 编写完整的汇编语言程序,实现两个双字的加法,假设第一个操作数是10008423H,放在2000H处,第二个操作数是2007F00H,放在了3000H处。DATA SEGMENTORG 2000HNUM1 DD 10008423HCNUM DB ? ;存放进位标志ORG 3000HNUM2 DD 2007F00HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAST

26、ART:MOV AX,DATAMOV DS,AX ;初始化DSLEA BX,NUM1 ;取有效地址到BX,以便访问要排序的数LEA SI,NUM2MOV AX,WORD PTR BXADD AX,WORD PTR SIMOV WORD PTR BX,AXMOV AX,WORD PTR BX+2ADC AX,WORD PTR SI+2MOV WORD PTRBX+2,AXMOV AL,0ADC AL,0MOV BYTE PTR BX+4,AL ;保存进位原先方括号内为BX+3MOV AH,4CHINT 21HCODE ENDSEND START24. 编写完整的汇编语言程序,实现:把“Hello

27、, Liaocheng University”传送到另外一个段的内存单元处,注意:不准使用movsb/movsw指令。DATA SEGMENTSTR1 DB Hello, Liaocheng UniversityLENT DB ?DATA ENDSEXTRA SEGMENTSTR2 DB 30 DUP (?)EXTRA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:EXTRASTART:MOV AX,DATAMOV DS,AX ;初始化DSMOV AX,EXTRAMOV ES,AXLEA SI,STR1 ;取有效地址到BX,以便访问要排序的数LEA DI,

28、STR2MOV CX,LENT-STR1LPTRANS:MOV AL,SIMOV ES:DI,ALINC SIINC DILOOP LPTRANSMOV AH,4CH INT 21HCODE ENDSEND START25. 用D命令查看中断向量表, 查找int 17h对应的中断向量,并把中断向量修改为:1234H:5678H。code segmentassume cs:code,ds:codestart:xor ax,ax mov ds,ax mov bx,17h mov cl,2 shl bx,cl mov word ptrbx,5678h mov word ptrbx+2,1234h m

29、ov ah,4ch int 21hcode endsend start 26. 编写完整的汇编语言程序,把内存3000H:2000H起30个字节数据传送到内存 2000H:1000H 开始处。data segmentdata endscode segmentassume cs:code,ds:datastart: mov ax,3000h mov ds,ax mov si,2000h mov ax,2000h mov es,ax mov di,1000h mov cx,30a1: mov al,si mov es:di,al inc si inc di loop a1 mov ah,4ch int 21hcode endsend start27. 编写完整的汇编语言程序,实现:显示字符串“Hello World!”,并利用d

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

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