微机原理答案.doc_第1页
微机原理答案.doc_第2页
微机原理答案.doc_第3页
微机原理答案.doc_第4页
微机原理答案.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

。第3章 8086/8088指令系统与寻址方式习题3 3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。(1)MOV BX,12 ;目标操作数为寄存器寻址(2)MOV BX,12 ;目标操作数为寄存器间址 PA=10300H(3)MOV ES:SI,AX ;目标操作数为寄存器间址 PA=20200H(4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H(5)MOV BXSI,AX ;目标操作数为基址加变址寻址 PA=10500H(6)MOV 6BPSI,AL ;目标操作数为相对的基址加变址寻址 PA=12306H(7)MOV 1000H,DX ;目标操作数为存储器直接寻址 PA=11000H(8)MOV 6BX,CX ;目标操作数为寄存器相对寻址 PA=10306H (9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H34 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV BX,1000 ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTEBX,1000 ;1000大于255,不能装入字节单元(8)MOV CS,1000 ;CS不能作为目标寄存器(9)MOV BX,OFFSET VARSI ;OFFSET只能取变量的偏移地址(10)MOV AX,SIDI ;SI、DI不能成为基址加变址(11)MOV COUNTBXSI,ES:AX ;AX是寄存器,不能加段前缀37 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行 PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH (2FEFEH)=57H (2FEFFH)=34H38 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。(1) SHR DX,1 ;DX=3C62H CF=1(2) SAR DX,CL ;DX=03C6H CF=0(3) SHL DX,CL ;DX=18A0H CF=1(4) ROR DX,CL ;DX=2BC6H CF=0(5) RCL DX,CL ;DX=18B7H CF=1 (6) RCR DH,1 ;DX=BCC5H CF=0;39 设AX=0A69H,VALUE字变量中存放的内容为1927H,写出下列各条指令执行后寄存器和CF、ZF、OF、SF、PF的值。 AX CF ZF OF SF PF(1)XOR AX,VALUE ; 134EH 0 0 0 0 1(2)AND AX,VALUE ; 0821H 0 0 0 0 1(3)SUB AX,VALUE ; F142H 1 0 0 1 1(4)CMP AX,VALUE ; 0A69H 1 0 0 1 1(5)NOT AX ; F596H X X X X X (6)TEST AX,VALUE ; 0A69H 0 0 0 0 1310 设AX和BX中是符号数,CX和DX是无符号数,请分别为下列各项确定CMP和条件转移指令。(1) CX值超过DX转移。(2) AX未超过BX转移。(3) DX为0转移。(4) CX值等于小于DX转移。(1) CMP CX,DXJA NEXT(2) CMP AX,BX JLE NEXT(3) CMP DX,0 JZ NEXT(4) CMP CX,DX JBE NEXT311 阅11 阅读分析下列指令序列:ADD AX,BXJNO L1JNC L2SUB AX,BXJNC L3JNO L4JMP L5若AX和BX的初值分别为以下5种情况,则执行该指令序列后,程序将分别转向何处(L1L5中的一个)。(1) AX=13C6H, BX=80DCH(2) AX=0B568H,BX=54B7H (3) AX=42C8H, BX=608DH(4) AX=0D023H,BX=9FD0H(5) AX=9FD0H, BX=0D023H(1) 转L1(2) 转L1(3) 转L2(4) 转L5(5) 转L5 第四章 汇编语言程序设计习题45 画出下列语句中的数据在存储器中的存储情况。VARBDB 34,34H,GOOD,2 DUP(1,2 DUP(0)VARWDW 5678H,CD,$+2,2 DUP(100)VARCEQU 1222H34HGOOD10010078H56HDC12H00H64H0064HVARB VARW46 按下列要求,写出各数据定义语句。(1) DB1为10H个重复的字节数据序列:1,2,5个3,4。(2) DB2为字符串STUDENTS(3) DB3为十六进制数序列:12H,ABCDH(4) 用等值语句给符号COUNT赋以DB1数据区所占字节数,该语句写在最后。 DB1DB 16 DUP(1,2,5 DUP(3,4) DB2DBSTUDENTS DB3DW 12H,0ABCDH COUNT EQU DB2DB1 48 对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?PREPDB ?TABADW 5 DUP(?)TABBDB NEXTTABCDD 12345678H(1)MOV AX, TYPE PREP ;AX=1(2)MOVAX, TYPE TABA ;AX=2(3)MOVAX, LENGTH TABA ;AX=5(4)MOVAX, SIZE TABA ;AX=10(5)MOVAX, LENGTH TABB ;AX=1(6)MOVDX, SIZE TABC ;AX=4 410 若自STRING单元开始存放有一个字符串(以字符$结束);(1) 编程统计该字符串长度(不包含 $ 字符,并假设长度为两字节)。(2) 把字符串长度放在STRING 单元,把整个字符串往下移两个单元。 程序段为:(1)MOV SI,OFFSET STRINGXORBX,BXCONT:MOV AL,SICMPAL,$JZNEXTINCBXINCSIJMPCONTNEXT: MOV AH,4CHINT21H (2) STRING DB . $ COUNT EQU $-STRING : MOV SI,OFFSET STRING MOV CX,COUNT ADD SI,CX CONT: DEC SI MOV AL,SI MOV SI+2,AL LOOP CONT MOV CX,COUNT MOVSTRING,CX MOV AH,4CH INT21H411 将字符串STRING中的& 字符用空格代替,字符串STRING“The data is FEB&03”。程序为:DATASEGMENTSTRINGDB The data is FEB&03COUNTEQU $-STRINGDATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV SI,OFFSET STRINGMOV CX,COUNTMOV AL,$CONT:CMP AL,SIJNZ NEXTMOV BYTE PTRSI, NEXT:INC SI LOOP CONTMOV AH,4CHINT21HCODEENDSENDSTART416 键盘输入十个学生的成绩,试编制一个程序统计6969分,7079分,8089分,9099分及100分的人数,分别存放到S6,S7,S8,S9及S10单元中。程序为: DATA SEGMENT BUFDB10 DUP(?) S6DB? S7DB? S8DB? S9DB? S10DB? DATAENDS CODESEGMENT ASSUME CS:CODE,DS:DATA START:MOVAX,DATAMOVDS,AXMOV SI,OFFSET S6XOR AL,AL MOV CX,0504H CONT:MOVSI,ALINCSILOOPCONTMOVCX,10MOVSI,OFFSET BUF CONT1: MOVAH,1INT21HSHLAL,CLMOVBL,ALMOVAH,1INT21HSUBAL,30HORAL,BLMOVSI,ALCMPAL,70HJAENEXT1INCBYTE PTR S6 NEXT1:CMPAL,80H JAENEXT2INCBYTE PTR S7 NEXT2:CMPAL,90HJAENEXT3INCBYTE PTR S8 NEXT3:CMPAL,99HJANEXT4INCBYTE PTR S9JMPNEXT5 NEXT4;INCBYTE PTR S10 NEXT5:INCSILOOPCONT1MOVAH,4CHINT21H CODEENDS ENDSTART第7章 基本输入/输出接口习题74 现有一输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H,当其D0为1时表明输入数据准备好。试采用查询方式,编程实现从该设备读取100个字节数据并保存到2000H:2000H开始的内存中。 程序段为:MOVAX,2000HMOVDS,AXMOV SI,2000HMOVCX,100CONT:MOVDX,0FFE2HCONT1: IN AL,DX TESTAL,01 JZCONT1 MOV DX,0FFE0H INAL,DX MOVSI,AL INCSI LOOPCONT MOV AH,4CH INT21H 75 硬件如图75所示,试编程实现:S0控制8个发光二极管1亮7暗,S1控制8个 8个发光二极管7亮1暗,S2控制某一亮点(或暗点)以一定时间间隔循环向左移动,S3控制某一亮点(或暗点)以一定时间间隔循环向右移动,两个或两个以上开关闭合,则结束程序。 程序段为:(省略伪指令) BUF1DB01H BUF2DB80HMOVDX,200HAGAIN:INAL,DXXOR BL,BLMOVCX,8CONT:RORAL,1JNCNEXTINCBLNEXT: LOOPCONTCMPBL,2JAEEXITCMP AL,0FEHJZ1L7ACMP AL,0FDJZ1A7LCMPAL,0FBHJZZSHLCMPAL,0F7HJZYSHR1L7A: MOV AL,80HOUTDX,ALJMPAGAIN7A7L:MOVAL,7FOUTDX,ALJMPAGAINZSHL:MOV AL,BUF1ROLAL,1MOVBUF1,ALOUTDX,ALCALLD500MSJMPAGAINYSHR:MOV AL,BUF2RORAL,1MOVBUF1,ALOUTDX,ALCALLD500MSJMPAGAINEXIT:MOVAH,4CHINT21H第8章 中断习题 82 已知中断向量表表中地址0020H 0023H的单元中依次是40H,00H,00H,01H,并知INT 08H指令本身所在的地址为9000H:00A0H。若SP=0100H,SS=0300H,标志寄存器内容为0240H,试指出在执行INT 08H指令,刚进入它的中断服务程序时,SP,SS,IP,CS和堆栈顶上三个字的内容(用图表示)。 执行后 SS=0300H SP=00FAH CS=0100H IP=0040H ,堆栈顶上三个字的内容如下所示:栈区A2H00H00H90H40H02HXX 00FAH 00FCH 执行后:0300H:00FEH 初始: 0300H:01000H 83 某一用户中断源的中断类型号为40H,其中断服务程序名为INTR40,请用两种不同的方法设置它的中断向量。 方法一: MOVAX,0MOVDS,AXMOVAX,OFFSET INTR40MOV00C0H,AXMOVAX,SEG INTR40MOV 00C2H,AX方法二:MOVAX,0MOVES,AXMOVDI,40H*4CLDMOVAX,OFFSET INTR40STOSWMOVAX,SEG INTR40STOSW 85 某一8086CPU系统中,采用一片8259A进行中断管理。设8259A工作在全嵌套方式,发送EIO命令结束中断,边沿触发方式,IR0对应的中断向量号为90H,8259A在系统中的端口地址为FFDCH(A0=0)和FFDDH(A0=1),试编写8259A的初始化程序段。 初试化程序段为: MOVDX,0FFDCHMOVAL,13HOUTDX,ALINCDXINCDXMOVAL,90HOUTDX,ALMOVAL,01OUTDX,AL第9章 可编程接口芯片及应用习题 91 试按如下要求分别编写初始化程序,已知计数器0 2和控制字寄存器的端口地址依次为204H 207H。(1)使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。 (2)使计数器0工作在方式1,按BCD码计数,计数值为3000。(3)使计数器2工作在方式2,按二进制计数,计数值为02F0H。初始化程序为:MOVDX,207HMOVAL,50HOUTDX,ALMOVDX,205HMOVAL,80HOUTDX,ALMOVDX,207HMOVAL,23HOUTDX,ALMOVDX,204HMOVAL,30HOUTDX,ALMOVDX,207HMOVAL,0B4HOUTDX,ALMOVDX,206HMOVAL,0F0HOUTDX,ALMOVAL,02OUT DX,AL 92 硬件如题92图,利用PC内部8253定时器0,并用中断方式实现每隔1s使发光二极管亮暗交替显示。(PC内部8253输入时钟频率为11932MHz,8253定时器0端口地址为40H,控制寄存器端口地址为43H。Y0为350H)。定时器计数值=11932MHz5=32864=83D5H 软件计数值:50程序为:(硬件图见教材P345题92图) MOVAL,34HOUT43H,ALMOVAL,0D5HOUT40H,ALMOVAL,83HOUT40H,ALMOVBL,50T0中断服务程序为:DECBLJNZEXIT1MOVBL,50MOVAL,BUFNOT ALMOVBUF,ALMOVDX,350HOUTDX,ALEXIT1:MOVAL,20HOUT20H,AL;(设8259A的端口地址为20H,21H)IRET93 硬件如题 93图,8253采用方式0,BCD码计数方式,初始值为1000,每按一次按钮S,计数器值减1。试编程实现显示8253当前计数值,直至计数值为0。8253端口地址范围为80H 83H。(略。在何处显示-屏幕/LED/液晶?)94 图94为一简化的键盘/数码管显示接口电路,假设端口线a h及1、2脚送“1”电平,可使显示点亮并能实现扫描,试问U1、U2及数码显示器的选用。(1)U1为 (同相驱动器 / 反相驱动器)。(2)U2为 (同相驱动器 / 反相驱动器)。(3)数码显示器为 (共阴 / 共阳)数码管。(4)若A键闭合,则端口线3,4的电平为 。 图94见教材P346(1) 选用同相驱动器(2) 选用反相驱动器 (3) 选用共阴数码管(4) 若A键闭合,则端口线3,4的电平为0,195 硬件如题 95图,试编程实现循环检测S0、S1,当S0按下,数码管显示0,当S1按下,数码管显示1,S0、S1同时按下,则结束程序。8255的端口地址范围为80H83H。 程序为:MOVAL,82HOUT83H,ALAGAIN:INAL,81HTESTAL,03JZEXITTEST AL,01JZNEXTMOV AL,3FHOUT80H,ALJMPAGAINNEXT:TEST AL,02JZNEXT1MOVAL,06OUT80H,ALJMPAGAINNEXT1:MOVAL,00OUT80H,ALJMPAGAINEXIT: MOVAH,4CHINT21H第10章 串行通信习题106 设异步传输时,每个字符对应一个起始位,7个信息位,1个奇偶校验位和一个停止位,如果波特率为9600,每秒能传输的最大字符数为多少个?字符数=9600位 / 秒10位 / 字符=960(字符 / 秒)1013 要求8251A工作于异步方式,波特率系数为16,字符长度为7位,奇校验,2个停止位。工作状态要求:复位出错标志,使请求发送信号RTS有效,使数据终端

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论