微机原理答案_第1页
微机原理答案_第2页
微机原理答案_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、第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)MOVBX ,12;目标操作数为寄存器间址PA=10300H3)MOVES: SI, AX;目标操作数为寄存器间址PA=20200H4)MOVVAR , 8;目标操作数为存储器直接寻址PA=10600H5)MOVBXSI, AX;目标操作数为

2、基址加变址寻址PA=10500H6)MOV6BPSI, AL;目标操作数为相对的基址加变址寻址PA=12306H7)MOV1000H, DX;目标操作数为存储器直接寻址PA=11000H8)MOV6BX ,CX;目标操作数为寄存器相对寻址PA=10306H9)MOVVAR+5 ,AX;目标操作数为存储器直接寻址PA=10605H34 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。1)XCHGCS , AX;错,CS不能参与交换2)MOVBX, 1000;错,存储器之不能交换3)XCHGBX ,IP;错,IP 不能参与交换4)PUSHCS5)POPCS;错,不能将数据弹到

3、CS中6) IN BX , DX;输入 / 输出只能通过 AL/AX7) 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是寄存器,不能加段前缀3. 7 设当前SS=2010H, SP=FE00H BX=3457H计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶 2 个字节的内容分

4、别是什么?当前栈顶的地址 =2FF00H当执行 PUSH BX 指令后,栈顶地址 =2FEFEH( 2FEFEH) =57H( 2FEFFH) =34H3. 8设 DX=78C5H, CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。(1)SHRDX , 1;DX=3C62HCF=1(2)SARDX , CL;DX=03C6HCF=0(3)SHLDX , CL;DX=18A0HCF=1(4)RORDX , CL;DX=2BC6HCF=0(5)RCLDX , CL;DX=18B7HCF=1(6)RCRDH , 1;DX=BCC5HCF=0;3.9 设AX=0A69H VALUE字变量

5、中存放的内容为1927H,写出下列各条指令执行后寄存器和CF ZF、OF SF、PF 的值。AX CFZF OFSFPF(1)XORAX ,VALUE ;134EH00001(2)ANDAX ,VALUE ;0821H00001(3)SUBAX ,VALUE ;F142H10011(4)CMPAX,VALUE ;0A69H10011(5)NOTAX;F596HXXXXX(6)TESTAX,VALUE ;0A69H000013. 10设AX和BX中是符号数,CX和DX是无符号数,请分别为下列各项确定CMP和条件转移指令。(1)CX值超过DX转移。(2)AX未超过BX转移。(3)DX为0转移。(4

6、)CX值等于小于DX转移。(1)CMPCX ,DXJANEXT(2)CMPAX ,BXJLE NEXT(3)CMPDX ,0JZNEXT(4)CMPCX ,DXJBIE NE:XT3. 11阅11阅读分析下列指令序列:ADDAX ,BXJNOL1JNCL2SUBAX ,BXJNCL3JNOL4JMPL5若AX和BX的初值分别为以下 5种情况,则执行该指令序列后,程序将分别转向何处(L1L5中的一个)。(1)AX=13C6HBX=80DCH(2)AX=0B568HBX=54B7H(3)AX=42C8HBX=608DH(4)AX=0D023HBX=9FD0H(5)AX=9FD0HBX=0D023H

7、(1)转L1(2)转L1(3)转L2(4)转L5(5)转L5第四章汇编语言程序设计习题4. 5画出下列语句中的数据在存储器中的存储情况。VARBVARWVARCDB 34 , 34H , ' GOOD 2 DUP (1 , 2 DUP ( 0)DW 5678H , ' CD , $+2 , 2 DUP (100)EQU 1210010078H56H DC12H00H64H0064HVARBVARW4. 6按下列要求,写出各数据定义语句。(1) DB1为10H个重复的字节数据序列:1, 2, 5个3, 4。(2) DB2为字符串STUDENT'(3) DB3为十六进制数序

8、列:12H, ABCDH(4) 用等值语句给符号 COUNTS以DB1数据区所占字节数,该语句写在最后。DB1DB2DB 16 DUP ( 1,2,5 DUP( 3,4)DB 'STUDENTSDB3DW 12H , 0ABCDHCOUNT EQU DB2 DB14. 8对于下面的数据定义,各条 MOV旨令单独执行后,有关寄存器的内容是什么?PREPDB?TABADW5 DUP (?)TABBDB'NEXTTABCDD12345678H(1)MOV AX,TYPE PREP;AX=1MOVAXTYPE TABA;AX=2(3)MOVAXLENGTH TABA;AX=5MOVAX

9、SIZE TABA?AX=10(5)MOVAXLENGTH TABB;AX=1MOVDXSIZE TABC;AX=44 . 10若自STRING单元开始存放有一个字符串(以字符$'结束);(1) 编程统计该字符串长度(不包含$字符,并假设长度为两字节)(2) 把字符串长度放在 STRING单元,把整个字符串往下移两个单元。程序段为:1)MOVSI , OFFSETSTRINGXOR BX,BXCON:TMOV AL,SICMP AL, $'JZNEXTINCBXINCSIJMPCONTNEXT:MOVAH, 4CHINT21H2)STRING DB($COUNT EQU $-S

10、TRINGMOVSI , OFFSET STRINGMOVCX, COUNTADDSI, CXCONT: DEC SIMOVAL, SIMOVSI+2, ALLOOPCONTMOVCX, COUNTMOVSTRING, CXMOV AH , 4CHINT 21H4. 11 将字符串 STRING中的&' 字符用空格代替,字符串STRING"The data isFEB&03”。程序为:DATA SEGMENTSTRING DB The data is FEB&03 'COUNT EQU $-STRINGDATAENDSCODESEGMENTAS

11、SUME CS:CODE, DS: DATASTART:MOVAX ,DATAMOVDS,AXMOVSI ,OFFSET STRINGMOVCX,COUNTMOVAL , $'CONT:CMPAL ,SIJNZNEXTMOVBYTE PTRSI , 'NEXT:INCSILOOPCONTMOVAH, 4CHINT 21HCODE ENDSEND START4. 16 键盘输入十个学生的成绩,试编制一个程序统计 6969 分, 7079 分, 8089 分,9099分及100分的人数,分别存放到S6, S7, S8, S9及S10单元中。程序为:DATA SEGMENTBUF56

12、575859S10DATACODEDB10 DUP(?)DB?DB?DB?DB?DB?ENDSSEGMENTASSUME CS: COD,E DS:DATASTART:MOV AX, DATAMOV DS, AXMOVSI , OFFSET S6XOR AL, ALMOV CX, 0504HCONT :MOV SI , ALINCSILOOP CONTMOV CX, 10MOV SI, OFFSET BUFCONT1 :MOV AH, 1INT 21HSHLAL, CLMOV BL, ALMOV AH, 1INT 21HSUBAL, 30HOR AL, BLMOV SI , ALCMP AL,

13、 70HJAENEXT1INCBYTE PTR S6NEXT1 :CMP AL, 80HJAENEXT2INCBYTE PTR S7NEXT2 :CMP AL, 90HJAE NEXT3INCBYTE PTR S8NEXT3 :CMP AL, 99HJANEXT4INCBYTE PTR S9JMP NEXT5NEXT4 ;NEXT5 :INCBYTE PTR S10INCSILOOP CONT1MOV AH, 4CHINT 21HCODEENDSEND START第 7 章 基本输入 / 输出接口习题7. 4 现有一输入设备,其数据端口地址为FFEOH状态端口地址为FFE2H当其 DO为 1

14、时表明输入数据准备好。 试采用查询方式, 编程实现从该设备读取 100 个字节数据并保 存到2000H: 2000H开始的内存中。程序段为:MOVAX, 2OOOHMOVDS, AXMOV SI , 2OOOHMOVCX, 1OOCONT:MOV DX,OFFE2HCONT:1IN AL ,DXTESTAL, O1JZCONT1MOVDX, OFFEOHINAL, DXMOVSI , ALINCSILOOPCONTMOVAH , 4CHINT21H7 . 5硬件如图7. 5所示,试编程实现:SO控制8个发光二极管1亮7暗,S1控制8 个 8 个发光二极管 7 亮 1 暗, S2 控制某一亮点(

15、或暗点)以一定时间间隔循环向左移动, S3 控制某一亮点(或暗点)以一定时间间隔循环向右移动,两个或两个以上开关闭合,则 结束程序。程序段为: (省略伪指令)BUF1DBO1HBUF2DB8OHMOV DX,2OOHAGAIN:INAL, DXXOR BL , BLMOV CX,8CONT:ROR AL,1JNCNEXTINCBLNEXT:LOOP CONTCMP BL,2JAEEXITCMP AL, OFEHJZ1L7ACMPAL , OFDJZ1A7LCMP AL,OFBHJZZSHLCMP AL,OF7HJZYSHR1L7A: MOVAL , 80HOUT DXALJMPAGAIN7A7

16、L: MOV AL,7FOUT DXALJMPAGAINZSHL: MOVAL , BUF1ROL AL, 1MOV BUF1 ALOUT DX ALCALLD500MSJMPAGAINYSHR MOVAL , BUF2ROR AL 1MOV BUF1 ALOUT DX ALCALLD500MSJMPAGAINEXIT : MOV AH,4CHINT21H第8章中断习题8 . 2 已知中断向量表表中地址 0020H 0023H的单元中依次是 40H , OOH, 00H, 0伯, 并知INT 08H指令本身所在的地址为 9000H: 00A0H=若SP=0100H SS=0300H标志寄存器

17、内容为0240H,试指出在执行INT 08H指令,刚进入它的中断服务程序时,SP, SS, IP,CS和堆栈顶上三个字的内容(用图表示) 。执行后 SS=0300H SP=00FAHCS=0100H IP=0040H,堆栈顶上三个字的内容如下所示:00FAH00FCH执行后:0300H: 00FEH初始:0300H : 01000H8. 3 某一用户中断源的中断类型号为INTR40,请用两种不同的方法设置它的中断向量。方法一:MOV AX , 0MOV DS AXMOV AX OFFSET INTR40MOV 00C0H , AXMOV AX SEG INTR40MOV 00C2H , AX4

18、0H ,其中断服务程序名为方法二:MOV AX, 0MOV ES, AXMOV DI, 40H*4CLDMOV AX,OFFSET INTR40STOSWMOV AX,SEG INTR40STOSW8 5 某一 8086CPU 系统中, 采用一片 8259A 进行中断管理。 设 8259A 工作在全嵌套方 式,发送EIO命令结束中断,边沿触发方式,IRO对应的中断向量号为 90H, 8259A在系统中的端口地址为 FFDCH( A0=0)和FFDDH( A0=1),试编写8259A的初始化程序段。初试化程序段为:MOV DX , 0FFDCHMOV AL, 13H OUT DX, ALINCD

19、XINCDXMOV AL, 90HOUT DX, ALMOV AL, 01OUT DX, AL第9章可编程接口芯片及应用习题9 1 试按如下要求分别编写初始化程序,已知计数器 0 2 和控制字寄存器的端口地址依次为 204H 207H 。( 1)使计数器 1 工作在方式 0,仅用 8 位二进制计数,计数初值为 128。(2) 使计数器0工作在方式1,按BCD码计数,计数值为 3000。( 3)使计数器 2 工作在方式 2,按二进制计数,计数值为02F0H。初始化程序为:MOV DX, 207HMOV AL, 50HOUT DX, ALMOV DX, 205HMOV AL, 80HOUT DX,

20、 ALMOV DX, 207HMOV AL, 23HOUT DX, ALMOV DX, 204HMOV AL, 30HOUT DX, ALMOV DX, 207HMOV AL, 0B4HOUT DX, ALMOV DX, 206HMOV AL OFOHOUT DX ALMOV AL 02OUT DX AL9 . 2硬件如题9. 2图,利用PC内部8253定时器0 ,并用中断方式实现每隔 1s使发 光二极管亮暗交替显示。(PC内部8253输入时钟频率为1 . 1932MHz 8253定时器0端口地 址为40H,控制寄存器端口地址为 43H。Y0为350H)。定时器计数值=1. 1932MH芳 5

21、=32864=83D5H软件计数值:50程序为:(硬件图见教材 P345题9. 2图)MOV AL , 34HOUT43H ALMOV AL 0D5HOUT40H ALMOV AL 83HOUT40H ALMOV BL 50T0中断服务程序为:DEC BLJNZ EXIT1MOV BL 50MOV AL BUFNOT ALMOVBUF ALMOV DX 350HOUT DX ALEXIT1 : MOV AL , 20HOUT 20H AL;(设 8259A 的端口地址为 20H, 21H)IRET9. 3硬件如题9 . 3图,8253采用方式0 , BCD码计数方式,初始值为 1000 ,每按

22、一 次按钮S,计数器值减1。试编程实现显示 8253当前计数值,直至计数值为 0。8253端口地 址范围为 80H 83H 。(略。在何处显示-屏幕/LED/液晶?)9. 4图9. 4为一简化的键盘/数码管显示接口电路,假设端口线a' h '及1、2脚送“1”电平,可使显示点亮并能实现扫描,试问U1、U2及数码显示器的选用。(1) U1为 (同相驱动器 / 反相驱动器)。(2) U2为 (同相驱动器 / 反相驱动器)。(3) 数码显示器为 (共阴/共阳)数码管。(4)若A键闭合,则端口线 3, 4的电平为 。图9.4见教材P346(1)选用同相驱动器(2)选用反相驱动器(3)选

23、用共阴数码管(4)若A键闭合,则端口线 3, 4的电平为0, 19. 5硬件如题9 . 5图,试编程实现循环检测SO、S1,当SO按下,数码管显示 0,当 S1 按下, 数码管显示 1, S0、S1 同时按下, 则结束程序。 8255的端口地址范围为 80H83H。程序为:MOV AL, 82HOUT 83H, ALAGAIN:INAL, 81HTESTAL, O3JZEXITTESTAL, O1JZNEXTMOVAL, 3FHOUT 8OH, ALJMPAGAINNEXT: TEST AL , O2 JZNEXT1MOV AL,O6OUT 8OH, AL JMPAGAINNEXT1: MOV

24、 AL, OOOUT 8OH, AL JMP AGAINEXIT: MOV AH, 4CHINT 21H第 1O 章 串行通信习题1O 6 设异步传输时,每个字符对应一个起始位, 7 个信息位, 1 个奇偶校验位和一个 停止位,如果波特率为 9600,每秒能传输的最大字符数为多少个?字符数=9600位/ 秒十10位/字符=960 (字符/ 秒)10. 13要求8251A工作于异步方式,波特率系数为16,字符长度为7位,奇校验,2个停止位。工作状态要求:复位出错标志,使请求发送信号RTS有效,使数据终端准备好信号DTR有效,发送允许TxEN有效,接受允许RxE有效。设8251A的两个端口地址分别为 0C0H 和0C2H试完成初始化编程。初始化程序为:MOV AL, 11011010B( DAH)OUT 0C2H, ALMOV

温馨提示

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

评论

0/150

提交评论