微机原理与接口技术习题答案样本_第1页
微机原理与接口技术习题答案样本_第2页
微机原理与接口技术习题答案样本_第3页
微机原理与接口技术习题答案样本_第4页
微机原理与接口技术习题答案样本_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

8086/8088指令系统与寻址方式习题38086系统中,设DS=1000H,ES=H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR偏移量为0600H,请指出下列指令目的操作数寻址方式,若目的操作数为存储器操作数,计算它们物理地址。(1)MOVBX,12;目的操作数为寄存器寻址(2)MOV[BX],12;目的操作数为寄存器间址PA=10300H(3)MOVES:[SI],AX;目的操作数为寄存器间址PA=0H(4)MOVVAR,8;目的操作数为存储器直接寻址PA=10600H(5)MOV[BX][SI],AX;目的操作数为基址加变址寻址PA=10500H(6)MOV6[BP][SI],AL;目的操作数为相对基址加变址寻址PA=12306H(7)MOV[1000H],DX;目的操作数为存储器直接寻址PA=11000H(8)MOV6[BX],CX;目的操作数为寄存器相对寻址PA=10306H(9)MOVVAR+5,AX;目的操作数为存储器直接寻址PA=10605H3.4下面这些指令中哪些是对的?那些是错误?如果是错误,请阐明因素。(1)XCHGCS,AX;错,CS不能参加互换(2)MOV[BX],[1000];错,存储器之不能互换(3)XCHGBX,IP;错,IP不能参加互换(4)PUSHCS(5)POPCS;错,不能将数据弹到CS中(6)INBX,DX;输入/输出只能通过AL/AX(7)MOVBYTE[BX],1000;1000不不大于255,不能装入字节单元(8)MOVCS,[1000];CS不能作为目的寄存器(9)MOVBX,OFFSETVAR[SI];OFFSET只能取变量偏移地址(10)MOVAX,[SI][DI];SI、DI不能成为基址加变址(11)MOVCOUNT[BX][SI],ES:AX;AX是寄存器,不能加段前缀3.7设当前SS=H,SP=FE00H,BX=3457H,计算当前栈顶地址为多少?当执行PUSHBX指令后,栈顶地址和栈顶2个字节内容分别是什么?当前栈顶地址=2FF00H当执行PUSHBX指令后,栈顶地址=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字变量中存储内容为1927H,写出下列各条指令执行后寄存器和CF、ZF、OF、SF、PF值。AXCFZFOFSFPF(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和条件转移指令。CX值超过DX转移。AX未超过BX转移。DX为0转移。CX值等于不大于DX转移。(1)CMPCX,DXJANEXT(2)CMPAX,BXJLENEXT(3)CMPDX,0JZNEXT(4)CMPCX,DXJBENEXT阅读分析下列指令序列:ADDAX,BXJNOL1JNCL2SUBAX,BXJNCL3JNOL4JMPL5若AX和BX初值分别为如下5种状况,则执行该指令序列后,程序将分别转向何处(L1~L5中一种)。AX=13C6H,BX=80DCHAX=0B568H,BX=54B7HAX=42C8H,BX=608DHAX=0D023H,BX=9FD0HAX=9FD0H,BX=0D023H转L1转L1转L2转L5转L5汇编语言程序设计习题4.5画出下列语句中数据在存储器中存储状况。VARB DB 34,34H,‘GOOD’,2DUP(1,2DUP(0))VARW DW5678H,‘CD’,$+2,2DUP(100)VARC EQU1222H34H‘G’‘O’‘O’‘D’10010078H56H‘D’‘C’12H00H64H0064HVARBVARW4.6按下列规定,写出各数据定义语句。DB1为10H个重复字节数据序列:1,2,5个3,4。DB2为字符串‘STUDENTS’DB3为十六进制数序列:12H,ABCDH用等值语句给符号COUNT赋以DB1数据区所占字节数,该语句写在最后。DB1 DB 16DUP(1,2,5DUP(3,4))DB2 DB ‘STUDENTS’DB3 DW12H,0ABCDHCOUNTEQUDB2-DB14.8对于下面数据定义,各条MOV指令单独执行后,关于寄存器内容是什么?PREP DB ?TABA DW5DUP(?)TABB DB‘NEXT’TABC DD12345678H(1)MOV AX,TYPEPREP;AX=1(2)MOV AX,TYPETABA;AX=2(3)MOV AX,LENGTHTABA;AX=5(4)MOV AX,SIZETABA;AX=10(5)MOV AX,LENGTHTABB;AX=1(6)MOV DX,SIZETABC;AX=44.10若自STRING单元开始存储有一种字符串(以字符‘$’结束);编程记录该字符串长度(不包括$字符,并假设长度为两字节)。把字符串长度放在STRING单元,把整个字符串往下移两个单元。程序段为:(1) MOV SI,OFFSETSTRING XOR BX,BXCONT:MOV AL,[SI] CMP AL,‘$’ JZ NEXT INC BX INC SI JMP CONTNEXT:MOV AH,4CH INT 21H(2) STRINGDB‘………….$’COUNTEQU$-STRING: MOVSI,OFFSETSTRINGMOVCX,COUNTADDSI,CXCONT:DECSIMOVAL,[SI]MOV[SI+2],AL]LOOPCONTMOVCX,COUNT MOV STRING,CX MOV AH,4CH INT 21H4.11将字符串STRING中‘&’字符用空格代替,字符串STRING“ThedataisFEB&03” 程序为:DATA SEGMENTSTRING DB ‘ThedataisFEB&03COUNT EQU $-STRINGDATA ENDSCODE SEGMENT ASSUMECS:CODE,DS:DATASTART: MOVAX,DATA MOVDS,AX MOV SI,OFFSETSTRING MOV CX,COUNT MOV AL,‘$’CONT: CMPAL,[SI] JNZ NEXT MOV BYTEPTR[SI],‘’NEXT: INC SI LOOPCONT MOV AH,4CH INT 21HCODE ENDS END START4.16键盘输入十个学生成绩,试编制一种程序记录69~69分,70~79分,80~89分,90~99分及100分人数,分别存储到S6,S7,S8,S9及S10单元中。 程序为: DATA SEGMENT BUF DB 10DUP(?) S6 DB ? S7 DB ? S8 DB ? S9 DB ? S10 DB ? DATA ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSETS6 XOR AL,AL MOV CX,0504H CONT: MOV [SI],AL INC SI LOOP CONT MOV CX,10 MOV SI,OFFSETBUF CONT1: MOV AH,1 INT 21H SHL AL,CL MOV BL,AL MOV AH,1 INT 21H SUB AL,30H OR AL,BL MOV [SI],AL CMP AL,70H JAE NEXT1 INC BYTEPTRS6 NEXT1: CMP AL,80H JAE NEXT2 INC BYTEPTRS7 NEXT2: CMP AL,90H JAE NEXT3 INC BYTEPTRS8 NEXT3: CMP AL,99H JA NEXT4 INC BYTEPTRS9 JMP NEXT5 NEXT4; INC BYTEPTRS10 NEXT5: INC SI LOOP CONT1 MOV AH,4CH INT 21H CODE ENDS END START第7章基本输入/输出接口习题7.4既有一输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H,当其D0为1时表白输入数据准备好。试采用查询方式,编程实现从该设备读取100个字节数据并保存到H:H开始内存中。 程序段为:MOV AX,HMOV DS,AXMOVSI,HMOV CX,100 CONT: MOV DX,0FFE2H CONT1:IN AL,DX TEST AL,01 JZ CONT1 MOV DX,0FFE0H IN AL,DX MOV [SI],AL INC SI LOOP CONT MOV AH,4CH INT 21H7.5硬件如图7.5所示,试编程实现:S0控制8个发光二极管1亮7暗,S1控制8个8个发光二极管7亮1暗,S2控制某一亮点(或暗点)以一定期间间隔循环向左移动,S3控制某一亮点(或暗点)以一定期间间隔循环向右移动,两个或两个以上开关闭合,则结束程序。 程序段为:(省略伪指令)BUF1 DB 01HBUF2 DB 80H … MOV DX,200HAGAIN: IN AL,DX XORBL,BL MOV CX,8CONT: ROR AL,1 JNC NEXT INC BLNEXT:LOOP CONT CMP BL,2 JAE EXITCMPAL,0FEH JZ 1L CMP AL,0FD JZ 1A CMP AL,0FBH JZ ZSHL CMP AL,0F7H JZ YSHR1L7A OUT DX,AL JMP AGAIN7A7L:MOV AL, OUT DX,AL JMP AGAINZSHL:MOV AL,BUF1 ROL AL,1 MOV BUF1,AL OUT DX,AL CALL D500MS JMP AGAINYSHR:MOV AL,BUF2 ROR AL,1 MOV BUF1,AL OUT DX,AL CALL D500MS JMP AGAINEXIT:MOV AH,4CH INT 21H第8章中断习题8.2已知中断向量表表中地址0020H~0023H单元中依次是40H,00H,00H,01H,并知INT08H指令自身所在地址为9000H:00A0H。若SP=0100H,SS=0300H,标志寄存器内容为0240H,试指出在执行INT08H指令,刚进入它中断服务程序时,SP,SS,IP,CS和堆栈顶上三个字内容(用图表达)。执行后SS=0300HSP=00FAHCS=0100HIP=0040H,堆栈顶上三个字内容如下所示:栈区A2H00H00H90H40H02HXX00FAH00FCH执行后:0300H:00FEH初始:0300H:01000H8.3某一顾客中断源中断类型号为40H,其中断服务程序名为INTR40,请用两种不同办法设立它中断向量。办法一:MOV AX,0 MOV DS,AX MOV AX,OFFSETINTR40 MOV [00C0H],AX MOV AX,SEGINTR40 MOV[00C2H],AX办法二: MOV AX,0 MOV ES,AX MOV DI,40H*4 CLD MOV AX,OFFSETINTR40 STOSW MOV AX,SEGINTR40 STOSW 8.5某一8086CPU系统中,采用一片8259A进行中断管理。设8259A工作在全嵌套方式,发送EIO命令结束中断,边沿触发方式,IR0相应中断向量号为90H,8259A在系统中端口地址为FFDCH(A0=0)和FFDDH(A0=1),试编写8259A初始化程序段。 初试化程序段为:MOV DX,0FFDCHMOV AL,13H OUT DX,AL INC DX INC DXMOV AL,90HOUT DX,ALMOV AL,01OUT DX,AL可编程接口芯片及应用习题9.1试按如下规定分别编写初始化程序,已知计数器0~2和控制字寄存器端口地址依次为204H~207H。(1)使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。(2)使计数器0工作在方式1,按BCD码计数,计数值为3000。(3)使计数器2工作在方式2,按二进制计数,计数值为02F0H。 初始化程序为: MOV DX,207H MOV AL,50H OUT DX,AL MOV DX,205H MOV AL,80H OUT DX,AL MOV DX,207H MOV AL,23H OUT DX,AL MOV DX,204HMOV AL,30H OUT DX,AL MOV DX,207H MOV AL,0B4H OUT DX,AL MOV DX,206H MOV AL,0F0H OUT DX,AL MOV AL,02 OUT DX,AL9.2硬件如题9.2图,运用PC内部8253定期器0,并用中断方式实现每隔1s使发光二极管亮暗交替显示。(PC内部8253输入时钟频率为1.1932MHz,8253定期器0端口地址为40H,控制寄存器端口地址为43H。Y0为350H)。定期器计数值=1.1932MHz÷5=32864=83D5H软件计数值:50 程序为:(硬件图见教材P345题9.2图)MOV AL,34H OUT 43H,AL MOV AL,0D5H OUT 40H,AL MOV AL,83H OUT 40H,AL MOV BL,50 ┇ T0中断服务程序为: DEC BL JNZ EXIT1 MOV BL,50 MOV AL,BUF NOT AL MOV BUF,AL MOV DX,350H OUT DX,AL EXIT1:MOV AL,20H OUT 20H,AL;(设8259A端口地址为20H,21H) IRET9.3硬件如题9.3图,8253采用方式0,BCD码计数方式,初始值为1000,每按一次按钮S,计数器值减1。试编程实现显示8253当前计数值,直至计数值为0。8253端口地址范畴为80H~83H。(略。在何处显示---屏幕/LED/液晶?)9.4图9.4为一简化键盘/数码管显示接口电路,假设端口线a’~h’及1、2脚送“1”(1)U1为(同相驱动器/反相驱动器)。(2)U2为(同相驱动器/反相驱动器)。(3)数码显示屏为(共阴/共阳)数码管。(4)若A键闭合,则端口线3,4电平为。图9.4见教材P346选用同相驱动器选用反相驱动器选用共阴数码管若A键闭合,则端口线3,4电平为0,19.5硬件如题9.5图,试编程实现循环检测S0、S1,当S0按下,数码管显示0,当S1按下,数码管显示1,S0、S1同步按下,则结束程序。8255端口地址范畴为80H83H。 程序为: MOV AL,82H OUT 83H,ALAGAIN: IN AL,81H TEST AL,03 JZ EXIT TEST AL,01 JZ NEXT MOV AL,3FH OUT 80H,AL JMP AGAIN NEXT: TESTAL,02 JZ NEXT1 MOV AL,06 OUT 80H,AL JMP AGAINNEXT1:MOV AL,00 OUT 80H,AL JMP AGAINEXIT:MOV AH,4CH INT 21H第10章串行通信习题10.6设异步传播时,每个字符相应一种起始位,7个信息位,1个奇偶校验位和一种停止位,如果波特率为9600,每秒能传播最大字符数为多少个? 字符数=9600位/秒÷10位/字符=960(字符/秒)10.13规定8251A工作于异步方式,波特率系数为16,

温馨提示

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

评论

0/150

提交评论