微机原理与接口复习题及参考答案第二版_第1页
微机原理与接口复习题及参考答案第二版_第2页
微机原理与接口复习题及参考答案第二版_第3页
微机原理与接口复习题及参考答案第二版_第4页
微机原理与接口复习题及参考答案第二版_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口课程复习题及参考答案2013年12月第一章习题微处理器、微型计算机和微型计算机系统三者之间有什么不同?【解】 把CPU(运算器和控制器)集成在一个芯片上,即为微处理器。微处理 器加上部分存储器和外设(或外设接口)就构成了微型计算机。微型计算机与管理、维护计算机硬件以及支持应用的软件相结合就形成微型计算机系统。CPU在内部结构上由哪几部分组成? CPIB该具备哪些主要功能?【解】CPUi要由算术逻辑单元、指令寄存器、指令译码器、可编程逻辑阵列、寄存器组、标志寄存器等组成。CPUE要功能是进行算术逻辑运算,以及控制计 算机按照程序的规定自动运行。微型计算机采用总线结构有什么优点?【解

2、】采用总线结构,扩大了数据传送的灵活性,减少了连线;而且总线可以标 准化,易于兼容和工业化生产。数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一组总线或者合用部分总线,那么要靠什么来区分地址和数据?【解】数据总线是双向的,地址总线是单向的。采用数据和地址线复用,主要靠 信号的时序来区分。通常在读写数据时,在复用的总线上先输出地址信息, 然后再传送数据。第二章习题2.9 8086的基本程序执行寄存器是由哪些寄存器组成的?【解】8086的基本程序执行寄存器组成如下:8个通用寄存器:可用于存放操作数和指针。4个段寄存器:保存段基值(或段选择子)。1个标志寄存器:保存状态位和控

3、制标志位。1个指令指针寄存器:存放下一条要执行的指令的指针。如何形成指令中的各种条件码?【解】指令中的条件码,即标志寄存器中的状态标志。它们主要由算术和逻辑运 算指令设置或清除。也有设置和清除某些状态标志位的专用指令。段寄存器CS= 1200H,指令指车+寄存器IP = FF00H此时,指令的物理地 址为多少?【解】指令的物理地址 =1200H X 16 + FF00H = 21F00H8086微处理器的执行部件有什么功能?由哪几部分组成?【解】8086微处理器的执行部件负责指令的执行。它主要由算术逻辑单元、标 志寄存器和通用寄存器等部分组成。第三章习题18086汇编语言指令的寻址方式有哪几类

4、?哪一种寻址方式的指令执行速度 最快?【解】寻址方式分为:立即数寻址、寄存器寻址和存储器寻址方式。其中,寄存 器寻址方式的指令执行速度最快。在直接寻址方式中,一般只指出操作数的偏移地址,那么段地址如何确定?如果要用某个段寄存器指出段地址,在指令中应该如何表示?【解】默认的数据访问,操作数在 DS段;堆栈操作数在SS段;用操作的源操作 数(SI)在DS段,目的操作数(DI)在ES段。如果要显式地指定段地址,则在 操作数中规定段寄存器(段超越)。例如:MOV AX ES: 1000H在寄存器间接寻址方式中,如果指令中没有具体指明段寄存器,那么如何 确定段地址?【解】根据所使用的寄存器,隐含地规定了

5、默认的段寄存器。IP:默认CS段;SP、BR 默认 SS段;AX BX CX DX SI、DI:默认 DS段。允许段超越,例如:MOV ES:BX, AX第三章习题23.1分别指出下列指令中的源操作数和目的操作数的寻址方式。(1) MOV SI , 300 (3) ADD AX , BXSI【解】(1) SOPD是立即数寻址,DOPDI寄存器寻址。SOPD是基址加变址寻址,DOPD寄存器寻址。试述指令 MOV AX 2000H 和 MOV AX DS:2000H的区别。【解】前一条指令是立即数寻址,即将立即数2000H送至AX;后一条指令是存储器直接寻址,是将存储器 DS: 2000H单元中的

6、内容送至AX判断下列指令书写是否正确。MOV AL , BX (4) MOV 5 , AL【解】(1)不正确,AL与BX数据宽度不同不正确,立即数不能作为目的操作数。3.5 设堆栈指针 SP的初值为1000H, AX= 2000H, BX= 3000H,试问:(1)执行指令PUSH AX后,SP的值是多少?(2) 再执行PUSH BX及POP AX后,SR AX和BX的值是多少?【解】SP=0FFEH(2) SP=0FFEH , AX=3000H BX=3000H3.8用两种方法写出从80H端口读入信息的指令,再用两种方法写出从 40H端口输出100H的指令。【解】从80H端口读入信息的两种分

7、法:(1) IN AL , 80H(2) MOV DX , 80HIN AL, DX从40H端口输出100H的两种分法:(1) MOV AX, 100H(2) MOV AX , 100HOUT 40H, AXMOV DX , 40HOUT DX, AX第三章习题33.23两种循环移位指令(带CF的和不带CF的)在执行操作时,有什么区别? 在编制乘、除法程序时,为什么常用移位指令来代替乘、除法指令?试编写一 个程序段,实现将BX中的数乘以10,结果仍放在BX中的操作。【解】两种指令的区别在于是否把标志位的值放入循环中。左移1位相当于乘2,右移1位除2。故左移和右移可实现乘2和除2的幕,且移位指令

8、比乘除指令快3得多。BXX 10= BXX 2+BXX 8=BXX 2+BXX 2SHL BX, 1MOV AX BX ; AX= BXX 2SHL BX, 1; BXX 4SHL BX, 1; BXX 8ADD BX, AX ; BX= BXX 8+BXX 2= BXX 10用用操作指令设计实现如下功能的程序段:首先将 100H个数从2170H处 转移到1000H处;然后,从中搜索出与 AL中字符相等的单元,并将此单元的值 换成空格符。【解】 TOC o 1-5 h z MOV SI,2170HMOV DI,1000HMOV CX,100HCLDREP MOVSBMOV DI, 1000HM

9、OV CX , 100HMOV AL , *NEXT SCASBJZ N1LOOP NEXTHLTN1: MOV DI-1 , 20HJMP NEXTHLT在使用条件转移指令时,特别要注意它们均为相对转移指令,请解释“相 对转移”的含义。如果要向较远的地方进行条件转移,那么程序中应该怎样设 置?【解】相对转移即为相对于指令指针的转移。 通常,偏移量是8位数,是短转移; 要向较远的地方进行条件转移,可以先转到附近,再无条件转向目的地。3.29在执行中断返回指令IRET和普通子程序返回指令 RET时,具体操作内容 有什么不同?【解】IRET除了弹出中断要返回的地址(CS和IP)外,还要恢复中断前的

10、标志 寄存器。第四章习题14.1在下列程序运行后,给相应的寄存器及存储单元填入运行的结果:MOVAL,10H;AL=10HMOVCX,1000H;CX=1000HMOVBX,2000H;BX=2000HMOVCX, AL;(1000H)=10HXCHGCXBX;BX=1000H, CX=2000HMOVDHBX; DH=10HMOVDL,01H; DL=01HXCHGCXBX; BX=2000H, CX=1000HMOV BX , DL ; (2000H)=01HHLT【解】AL= 10H; BX= 2000H CX= 1000H DX= 1001H(1000H)=10H; (2000H)=0

11、1H4.4利用变址寄存器,编写一段程序,把自1000H单元开始的100个数传送到自1070H开始的存储区中。【解】MOV SI, 1000HMOV DI, 1070HMOV CX, 100CLDREP MOVSBHLT4.10把在题4.7中指定的数据块中的正数传送到自1000H开始的存储区;而把其中的负数传送到自1100H开始的存储区。分别统计正数和负数的个数,分别 存入1200H和1201H单元中。【解】MOV SI, 0500HMOV DI, 1000HMOV BX, 1070HMOV CX, 100MOV DX, 0N1: MOV AL, SI;测试符号位;正数的个数计数;负数的个数计数

12、TEST AL, 8000HJNZ N2MOV DI, ALINC DLINC SIINC DIJMP N3N2: MOV BX, ALINC DHINC SIINC BXN3: LOOP N1MOV 1200H, DXHLT4.11自0500H单元开始,有10个无符号数,编写一个程序,求这 10个数的和(用8位数运算指令),把和放到050AH及050BH单元中(和用两个字节表示), 且高位在050B单元。【解】MOV BX, 0500HMOV AX, 0MOV CL, 10N1: MOV DL, BXADD AL, DLADC AH, 0INC BXDEC CLJNZ N1MOV 050AH

13、, AX HLT第四章习题24.18在0100H单元和010AH单元开始,存放两个各为 10个字节的BC国(地 址最低处放的是最低字节),求它们的和,且把和存入0114H开始的存储单元中。【解】LEA SI , 0100HLEA DI, 0114HCLCMOV CL, 10N1: MOV AL, SIMOV BL, SI+10ADC AL, BL DAAMOV DI, ALINC SIINC DIDEC CLJNZ N14.28若从0200H单元开始有100个数,编写一个程序检查这些数,正数保持不 变,负数都取补后送回。【解】LEA BX, 0200HMOV CX, 100CHE: MOV A

14、L, BXAND AL , ALJS MINUSINC BXJMP L1MINUS NEG ALMOV BX, ALINC BXL1: LOOP CHEHLT4.37若自0500H单元开始有1000个带符号数,把它们的最小值找出来,并且 放在1000H单元中。【解】LEA BX, 0500H MOV AX, BX INC BX INC BX MOV CX, 999 AGAIN: CMP AX, BX JL NEXT MOV AX, BX NEXT: INC BX INC BX LOOP AGAIN MOV 1000H, AX HLT第五章习题总线周期的含义是什么? 8086/8088CPU的基

15、本总线周期由几个时钟周期组 成?如果一个CPU的时钟频率为8MHz那么,它的时钟周期是多少? 一个基本 总线周期是多少?如果主频为 5MH观?【解】CPU访问总线(对内存单元或I/O端口读/写一个字节或字)所需的时间 称为总线周期。8086/8088CPU的基本总线周期由4个时钟周期组成。主频为8MHz寸,时钟周期为1/8MHz= 125ns, 一个基本总线周期为500ns; 主频为5MHz寸,时钟周期为1/8MHz= 200ns, 一个基本总线周期为800ns。在总线周期的T1、T2、T3、T4状态,CPU别执行什么动作?什么情况下 需要插入等待状态Tw? Tw在哪儿插入?怎样插入?【解】以

16、存储器读为例说明:T1状态:输出地址、地址锁存、内存和I/O端口访问控制信号等;T2状态:CPUFF始数据传送操作,将地址/数据复用线切换为传输数据状态,由 总线控制器发出相应的读写控制信号及数据使能信号;同时将高端地址/状态复用线切换为状态线,输出状态信息,指示具体操作;T3状态:其时钟下降沿采样READY1号,若READYt效,贝U进入T4状态;若READY 无效,则插入等待状态Tw,并在Tw的下降沿继续采样READYf号直到READW 效,转入T4状态;T4状态:CPUI成数据传输,状态信号变为无操作的过渡状态,结束总线周期。 CPU问慢速白内存或I/O端口时,不能在基本总线周期内完成数

17、据传输,需要 插入等待状态Tw,在T3状态对READY1号采样,READ疣效时插入Tw。8086CPU和8088CPU怎样解决地址线和数据线的复用问题的?ALE#信号何时处于有效电平【解】8086/8088CPU利用分时时序信号解决地址线和数据线的复用问题。在总 线周期的T1状态在复用线上输出地址信号及地址锁存信号ALE# ,供外部电路锁存地址信息;从T2状态开始将复用线切换为数据状态,用于传送数据。若要扩充1KB RAM(用2114芯片),规定地址为 8000H- 83FFH 地址线应 该如何连接?【解】扩充1KBRAME规定白地址8000HH83FFH其地址线的低10位地址A9 A0直接连

18、接2114芯片,高6位地址A15A10置为100000B第七章习题7.1外部设备为什么要通过接口电路和主机系统连接?【解】外设这类多,传输信息可能是数字量或模拟量,且传输速度、时序、电平、 功率等与CP怀兼容,通常需要接口电路完成两者之间的转换与匹配。什么叫端口?通常有哪几类端口?计算机对I/O端口编址时通常采用哪两种方法?在8086/8088系统中,用哪种方法对I/O端口进行编址?【解】端口是信息输入或输出的通路;通常有数据端口、状态端口和控制端口等。 在计算机中用地址来区分不同的端口,采用两种编址方法:存储器对应的(存储器映像方式)和端口寻址的输入输出方式(隔离 I/O方式)。8086/8

19、088系统中, 米用隔离I/O方式。CPlffi外设之间的数据传输方式有哪几种?实际选择某种传输方式时,主要 依据是什么?【解】CPUW外设之间的数据传送方式主要有三种:查询传送方式、中断传送方 式和直接数据通道(DMA传送方式。具体采用哪种传送方式,主要依据数据传 送的速度和数量。外设速度较慢或要求实时处理时,可采用中断传送方式;外设速度与CPUf目当时,可采用查询传送方式;要求传送速度块且是批量传送时,采 用DMAt送方式。查询方式有什么优缺点?中断传送方式为什么能弥补查询传送方式的缺 点?【解】采用查询传送方式,CPUS外设有无数据时都要不断查询状态信息,判断 是否可以传送数据,优点是简

20、单、可靠;缺点是效率低、速度慢。中断传送方式 只有在外设准备就绪后,需要传送数据时,才发出中断申请,CPU专入中断服务程序实现数据传送,CPUW工作效率高。试说明在DMAf式时由内存向外设传输数据的过程。【解】当CPUP向应DMA青求发出HLDAB号后,DMA空制器获得总线控制权,向 地址线发内存地址,同时发读写控制信号,把内存读出的数据输出至外设。 然后判断是否已经传送完毕。若未完,修改内存地址,重复输出过程,直至输出完成, 撤销DMA青求,交还总线控制权给CPU 第八章习题什么叫中断向量?它如何产生?如果 1CH勺中断处理子程序从5110H:2030H 开始,则中断向量表应如何存放?【解】

21、中断向量就是中断服务程序的入口地址,所有的中断向量存放在内存空间的最低1KB区域(中断向量表);通过CPU行指令时(软件中断)和响应外部 中断时获得的中断类型号,寻址中断向量表获得中断向量。中断类型号为1CH的 中断向量表地址=1CHX 4=70H,低字存放IP值,高字存放CS值,即:(0070H) = 30H, (0071H) =20H, (0072H) =10H, (0073H)=51148.21 8086 CPU有哪几种中断?哪些是硬件中断?哪些是软件中断?【解】8086 CPU有两类中断:1、软件中断(内部中断),由指令的执行所引起 的(如:除法错、INT指令、INTO指令和单步执行等

22、);2、硬件中断(外部中断), 由外部的事件所引起的(如:非屏蔽中断 NMk可屏蔽中断INTR)。第九章习题9.2计数器/定时器8253有哪几种工作方式?各有何特点?其用途如何? 【解】计数器/定时器8253有以下6种工作方式:方式0:计数结束中断方式,计数结束时产生一个正跳变的中断请求信号,常用于事件计数功能,且只计数一次;方式1:硬件可重触发单脉冲方式,触发后可产生一个宽度为 n个时钟周期的负脉冲,常用作门控信号;方式2:速率波发生器方式,产生n次分频的周期信号,且低电平时只有一个时 钟周期宽度,可用作一般分频功能;方式3:方波速率发生器方式,产生n次分频的方波或近似方波的周期信号,可用作

23、一般分频功能,常用于产生波特率时钟信号;方式4:软件触发选通方式,在门控信号有效时,写入一次计数初值,延迟 n个时钟周期产生一个单周期负脉冲,仅一次有效;方式5:硬件件触发选通方式,在写入计数初值后,门控信号每产生一个上跳沿, 延迟n个时钟周期产生一个单周期负脉冲,仅一次有效。9.4若已有一频率发生器,其频率为1MHz若要求通过计数器/定时器8253,产生每秒一次的信号,8253应如何连接?编写出初始化程序。【解】1MHz1号分频1000000次产生1Hz信号,一个计数通道最大的分频系数为65536,需采用两个通道级联进行分频,每个通道各分频1000次(计数初MOV AL 34H OUT PO

24、RT3 AL MOV AL 0E8H OUT PORT0 AL MOV AL 03H OUT PORT0 AL MOV AL 74H OUT PORT3 AL MOV AL 0E8H OUT PORT 1 AL MOV AL 03H OUT PORT 1 AL值1000=03E8H。采用通道0和通道1级联,均工作在方式2,二进制计数,初 始化程序段如下:;PORT效控制口地址;PORTCfcffl道0端口地址;PORT效控制口地址;PORTWffi道1端口地址第十章习题10.3在输入过程和输出过程中,并行接口分别起什么作用?【解】在输入过程中:并行接口主要起输入数据的缓冲或锁存作用, 并产生相

25、应 的应答控制信号;在输出过程中:并行接口主要起输出数据的锁存作用, 并产生 相应的应答控制信号 第十一章习题11.1为什么串行接口部件中的4个寄存器可以1位地址进行区分?【解】串行接口部件中有两类端口:控制端口(控制字和状态字)和数据端口, 可用1位地址加以区分,而控制端口的控制字输出和状态字输入以及数据端口的 发送和接收可用读或写操作控制。11.6设异步传输时,每个字符对应1位起始位、7位信息位、1位奇/偶校验位和1位停止位,如果波特率为9600,则每秒钟能传输的最大字符数是多少?【解】因为每个字符帧的总位数=1 + 7+1 + 1 = 10位,波特率为:9600(位/秒),则最大可传输的

26、字符数为:9600+10= 960 (个) 第十二章习题12.6 A/D转换器接口电路一般完成哪些任务?【解】A/D转换器接口电路的输入端为模拟信号,通常需要经过采样、保持、量 化、编码四个步骤(即四项任务),将输入的模拟量转换成数字量。第1章绪论作业.将下列二进制数转换成十进制数。11001010B=202(2) 00111101B=6101001101B=77(4) 10100100B=1643.将下列十进制数分别转换为二进制数和十六进制数。(2) 76= 100 1100B =4CH(4) 134= 1000 0110B =86H4.求下列十进制数的 BCM327=11 0010 011

27、1 (BCW)1256=1 0010 0101 0110( BCM)6.求出下列10进制数的原码、反码和补码(2) +85(4) -85解:85=0101 0101B原码:+85= 0101 0101B -85= 1101 0101B反码:+85= 0101 0101B -85= 1010 1010B补码:+85= 0101 0101B -85= 1010 1011B10.画出微型计算机的基本结构框图,说明各部分的主要功能是什么?解:微型计算机的基本结构框图如下:地址总线数据总线控制总线微处理器CPU控制微处理器与存储器或 I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向

28、微处理器主要完成:(1)指令控制:从存储器中取指令,指令译码;(2)数据加工:简单的算术逻辑运算;(3)操作控制:在微处理器和存储器或者I/O之间传送数据;(4)时间控制:程序流向控制。存储器:用来存放数据和指令。I/O接口:主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等 各种功能。I/O设备:输入原始数据和程序,转换成计算机能识别的信息,送入存储器去等待处理。输出运算结果。 总线:连接计算机系统中各功能部件的信息通道。第2章8086CPU作业2. 8086CPU内部由哪两部分组成?它们的大致是如何工作的?8086CPU由指令执行部件EU和总线接口部件 BI

29、U两部分组成。BIU先执行读存储器操作,从给定地址单元中取出指令,送到先进先出的指令队列中等待执行。存储器的物理地址=CS 16+IP,在地址加法器 中形成。EU从指令队列中取走指令,经 EU控制器译码分析后,向各部件发控制命令,以完成执行指令的 操作。BIU与EU是并行工作方式。 当指令队列已满,EU在执行指令,未向总线接口单元 BIU申请读/写内存或I/O操作时,BIU处于 空闲状态。指令执行过程中,若需对存储器或I/O端口存取数据,EU就要求BIU去完成相应的总线周期。5.两个带符号数1011 0100B和1100 0111B相加,运算后各标志位的值等于多少?哪些标志位是有意 义的?如果

30、把这两个数当成无符号数,相加后哪些标志位是有意义的?解:(1)两个带符号数: 不考虑CF标志1011 0100+ 1100 01111 0111 1011运算后各标志位状态如下:CF=1 ,有进位,对于带符号数,无意义。PF=1,结果有偶数个1AF=0,无半进位,非 BCD码运算,无意义。ZF=0,结果非0SF =0,结果为正数OF=1,溢出(两个负数相加,结果变成了正数)(2)两个无符号数: 不考虑SF和OF标志1011 0100+ 1100 01111 0111 1011运算后各标志位状态如下:CF=1 ,有进位PF=1,结果有偶数个1ZF=0,结果非0AF、SF、 OF无意义。.简要解释

31、下列名词的意义。CPU :中央处理单元 CPU (Control Processing Unit)也称微处理器,是微型计算机的核心部件,由运 算器ALU、控制器、寄存器组以及总线接口等部件组成。主要完成各种运算,负责对整机的控制。存储器:用于存储程序和数据的硬件设备。堆栈:堆栈是一种数据结构,是内部 RAM的一段区域。设置堆栈的目的是用于数据的暂存,中断、 子程序调用时断点和现场的保护与恢复。IP:指令指针寄存器,用于控制 CPU的指令执行顺序(只存放偏移量),只能和代码段寄存器 CS配 合使用,可以确定当前所要取的指令的内存地址, 且始终指向代码段中下一条将要读取到 CPU指令队列的 那条指

32、令。顺序执行程序时, CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节。SP:堆栈指针寄存器,用于指示堆栈的栈顶地址偏移量的寄存器,它决定了堆栈在内部RAM中的物理位置。只能和SS段寄存器配合使用,且始终指向堆栈的栈顶,在堆栈指令中隐含的使用它来定位栈顶数 据。BP:基址指针寄存器。用于存放偏移量,通常和SS段寄存器配合使用,在间接寻址中用于定位堆栈段中的内存单元。段寄存器:由于CPU内部的寄存器都是16位的,为了能够提供 20位的物理地址,8086系统中采用 了存储器分段的方法。规定存储器的一个段为 64KB,由段寄存器来确定存储单元的段基址, 由指令提供该 单元相对于相应段起始

33、地址的 16位偏移量。状态标志:表示前一步操作(如加、减等)执行以后,ALU所处的状态,后续操作可以根据这些状态标志进行判断,实现转移。控制标志:可以通过指令人为设置,用以对某一种特定的功能起控制作用(如中断屏蔽等) ,反映了人 们对微机系统工作方式的可控制性。物理地址:存储器的实际地址,它是指 CPU和存储器进行数据交换时所使用的地址。物理地址是由段 地址与偏移地址共同决定的,计算物理地址的表达式为:物理地址=段地址x 16 +偏移地址逻辑地址:是在程序中使用的地址,它由段地址和偏移地址两部分组成。逻辑地址的表示形式为 段地址:偏移地址机器语言:直接用二进制编码表述的指令系统语言,通常称为机

34、器语言,机器语言指令是计算机惟一 能直接识别和执行的指令。汇编语言:便于记忆和使用,通常使用汇编语言(符号指令或指令助记符)来描述计算机的指令系统。指令:让计算机完成某种操作的命令称为指令。指令系统:一台计算机所能识别、执行的指令的集合就是它的指令系统。总线:连接计算机系统中其他主要功能部件的桥梁,是计算机系统中信息输送的枢纽,只有通过总线,计算机系统的各部件才能实现相互通信。内部总线:微处理器内部各个器件之间传送信息的通路。系统总线:微处理机机箱内的底板总线。可分为:ISA、EISA、VESA局部总线、PCI局部总线等。时钟周期:CPU时钟频率的倒数称为时钟周期,也称T状态。总线周期:BIU

35、完成一次访问存储器或I/O端口操作所需要的时间称为总线周期。一个基本的总线周 期是由4个(或4个以上)时钟周期组成的。指令周期:执行一条指令所需要的时间称为指令周期,不同指令的指令周期的长短是不同的。一个指 令周期是由几个总线周期组成的。.要完成下列运算和控制,用什么标志判别?其值是什么?(1)比较两数是否相等?(2)两数运算后结果是正数还是负数?(3)两数相加后是否溢出?(4)奇偶校验判断。(5)两数相减后比较大小。(6)中断信号能否允许?答:(1)比较两数是否相等:两数相减后用零标志ZF判断,ZF=1,则相等。(2)两数运算后结果是正数还是负数:用符号标志SF判断,SF=1,则结果为负数。

36、(3)两数相加后是否溢出:用溢出标志 OF判断,OF=1,则有溢出。(4)奇偶校验判断:采用偶校验方式,判定是否要补“1?用奇偶标志PF判断,若数据结果低8位中含有偶数个“1,则PF=1;不用补“俏(5)两数相减后比较大小:ZF=1,两数相等。对于无符号数, CF=1 ,则被减数小于减数;CF=0,则 被减数大于减数;ZF=1,则两数相等。对于带符号数, SF OF=1 ,则被减数小于减数;SF OF=0,则被 减数大于减数。(6)中断信号能否允许:用中断允许标志IF判断,IF=1 ,则能允许可屏蔽中断。22.说明8086系统中 最小模式”和最大模式”两种工作方式的主要区别。最小模式(最小工作

37、方式):单微处理器系统(系统中只有一个8086微处理器),所有的总线控制信号,都是直接由8086CPU产生的,适用于规模较小的微机应用系统。当把8086的33脚MN/MX 接+5V时,8086 CPU就处于最小工作方式。最大模式(最大工作方式):多微处理器系统(包含有两个或多个微处理器,一个主处理器8086CPU , 其他的处理器称为协处理器它们是协助主处理器工作的。),主要用在中等或大规模的 8086系统中。当把8086的33脚MN/MX 接地时,8086 CPU就处于最大模式。第3章作业1.分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。(1)MOV AX, 2048HMOV C

38、L, 0FFHMOV BX, SIMOV 5BX, BL MOV BP+100H, AXMOV BX+DI, $MOV DX, ES:BX+SIMOV V ALBP+DI, DXIN AL, 05HMOV DS, AX源立即寻址立即寻址寄存器间接寻址寄存器寻址寄存器寻址立即寻址基址变址寻址寄存器寻址I/O端口寻址(或直接寻址)寄存器寻址目的寄存器寻址寄存器寻址寄存器寻址寄存器相对寻址寄存器相对寻址基址变址寻址寄存器寻址相对基址加变址寻址寄存器寻址寄存器寻址2,已知:DS=1000H, BX=0200H, SI=02H, 内存 10200H10205H 单元的内容分别为 10H, 2AH, 3C

39、H, 46H,59H, 6BH 。下列每条指令执行完后 AX寄存器的内容各是什么?(1)MOV AX, 0200H ;(2) MOV AX, 200H; MOV AX, BX ; MOV AX, 3BX;MOV AX, BX+SIMOV AX, 2BX+SIAX内容 (AX)=0200H (AX)=2A10H (AX)=0200H (AX)=5946H (AX)=463CH (AX)=6B59H6.指出下列指令中哪些是错误的,错在什么地方(1) MOV DL, AXMOV 8650H, AXMOV DS, 0200HMOV BX, 1200HMOV IP, 0FFHMOV BX+SI+3, I

40、P错误,源和目的操作数类型不匹配,DL是8位寄存器,AX是16位寄存器。错误,立即数不能作为目的操作数。错误,不能用立即数直接给段寄存器赋值。错误,不能在两个存储单元之间直接传送数据错误,IP不能作目的操作数或不能用立即数直接给IP寄存器赋值。错误,IP不能作源操作数。(7) MOV AX, BXBP错误,基址变址寻址方式必须是一个基址寄存器与一个变址寄存器, 不能两个同时为基址寄存器(BX、BP均为基址寄存器)。MOV AL, ES:BPMOV DL, SIDI正确。错误,基址变址寻址方式必须是一个基址寄存器与一个变址寄存器, 不能两个同时为变址寄存器(SI、DI均为变址寄存器)。(10)

41、MOV AX, OFFSET 0A20H错误,OFFSET后必须是存储单元标号地址,不能是立即数。MOV AL, OFFSET TABLEXCHG AL, 50H错误,操作数类型不匹配,AL为8位,TABLE为16位。错误,交换指令XCHG的操作数不能是立即数。(13 ) IN BL, 05H(14 ) OUT AL, 0FFEH错误,IN指令的目的操作数必须是累加器错误,OUT指令的源操作数必须是累加器,目的操作数为8位I/O端口地址或用DX做桥梁的16位I/O端口地址。10.已知 AX=2508H , BX=0F36H位CF等于什么?,CX=0004H , DX=1864H ,求下列每条指

42、令执行后的结果是什么?标志AND AH , CLOR BL , 30H(AH ) =04HCF=0(BL) =36HCF=0NOT AXXOR CX, 0FFF0H (5) TEST DH , 0FH (6) CMP CX, 00H SHR DX, CLSAR AL , 1SHL BH , CL (10) SAL AX , 1 (11) RCL BX, 1 (12) ROR DX, CL11.假设数据定义如下:(AX) =0DAF7HCF 不变(不影响 CF)(CX) =0FFF4H CF=0(DH) =18H CF=0(CX) =0004HCF=0(DX) =0186HCF=0(AL ) =

43、04H CF=0(BH) =0F0H CF=0(AX) =4A10H CF=0CF=1, (BX) =1E6DH,CF=0, (BX) =1E6CH CF=0(DX) =4186H CF=0DATA SEGMENTSTRING DB The Personal Computer & TVDATA ENDS试用字符串操作指令编程完成以下功能:(1)把该字符串传送到附加段中偏移地址为GET_CHAR 开始的内存单元中解:程序段如下:LEA SI, STRING LEA DI , GET_CHAR MOV CX , 26;置源串偏移地址;置目的串偏移地址;置串长度CLD;方向标志复位REP MOVSB

44、;字符串传送12.编程将AX寄存器中的内容以相反的次序传送到DX寄存器中,并要求 AX中的内容不被破坏,然后统计DX寄存器中1的个数是多少。解:将AX的内容用ROR循环右移,16次之后AX的内容不变(如果用算术/逻辑右移SHL/SAL ,则AX 的内容破坏,需要用堆栈PUSHU AX/POP AX保护),其最低位移入CF中,再使用RCL循环左移将CF中 的值移入DX中。并且,如果 CF的值为1,则将BL力口 1。MOV CX, 16XOR BL, BLLP1:ROR AX, 1JNC LP2INC BLLP2:RCL DX,1LOOP LP1HLT调试程序:STACK SEGMENT STAC

45、KDB 100 DUP(?)STACK ENDSDATA SEGMENTBUF DW 12BUF1 DW 100 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSMOV AX,DA TAMOV DS,AXMOV AX,1234HMOV CX, 16XOR BL, BLLP1:ROR AX, 1JNC LP2INC BLLP2:RCL DX,1LOOP LP1HLTCODE ENDSEND START15.某班有七个同学的英语成绩低于80分,分数存在 ARRAY数组中,试编程完成以下工作:给每人加分

46、,结果存到NEW数组中.解:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTARRAYDB 7 DUP(?)NEWDB 7 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV CX, 7MOV BX, 0LP1:MOV AL, ARRAYBXADD AL, 05HDAAMOV NEWBXI, ALINC BXLOOP LP1HLTCODE ENDSEND START调试程序:STACK SEGMENT STACKDB 100 DUPSTACK ENDS

47、DATA SEGMENTARRAYDB65H,76H,78H,54H,90H,85H,68HNEWDB 7 DUPBUF1 DW 100 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSMOV AX,DA TAMOV DS,AXMOV CX, 7MOV BX, 0LP1:MOV AL, ARRAYBXADD AL, 05HDAAMOV NEWBXI, ALINC BXLOOP LP1HLTCODE ENDSEND START某班有七个同学的英语成绩低于80分,分数存在 ARRAY数组中,试编程完成

48、以下工作:(1)给每人加5分,结果存到NEW数组中(2)把总分存到SUM单元中(3)把平均分存到 AVERAGE单元中解:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTARRAYDB 7 DUP(?)NEWDB 7 DUP(?)SUMDW 0AVGDB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV CX,7MOV SI,0MOV SUM, 0MOV AH, 0LP1:MOV AL,ARRAYSIADD AL, 05HDAAMOV NEWSI, ALADD

49、 AL ,SUMDAAMOV SUM,ALADC AH, 0DAAMOV SUM+1, AHINC SILOOP LP1MOV AX, SUMMOV BL,07HDIV BLMOV AVG, ALHLTCODE ENDSEND START调试程序:STACK SEGMENT STACKDB 100 DUPSTACK ENDSDATA SEGMENTARRAYDB65H,76H,78H,54H,90H,85H,68HNEWDB7 DUP(?)SUMDB00H,00HAVGDB 0BUF1 DW 100 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:D

50、ATA,SS:STACKSTART: PUSH DSMOV AX,DA TAMOV DS,AXMOV CX, 7MOV SI, 0MOV SUM, 0MOV AH, 0LP1:MOV AL, ARRAYSIADD AL, 05H DAAMOV NEWSI, AL ADD AL , SUM DAAMOV SUM,ALADC AH, 0MOV SUM+1, AHINC SILOOP LP1MOV AL, SUMMOV AH,SUM+1MOV BL,07HDIV BLMOV AVG, ALHLTCODE ENDSEND START.设 CS=1200H, IP=0100H, SS=5000H, SP

51、=0400H, DS=2000H, SI=3000H, BX=0300H, (20300H)=4800H, (20302H)=00FFH, TABLE=0500H, PROG_N 标号的地址为 1200:0278 H, PROG_F 标号的地址为 3400:0ABCH o说明下列每条指令执行完后,程序分别转移到何处执行?JMP指令(1)JMP PROG_N段内直接近转移,目的地址为1200H:0278H(或12278H)(2)JMP BX段内寄存器间接转移,目的地址为1200H:0300H(或12300H)(3)JMP BX物理地址=DSX 10H+BX=2000H X 10H+0300H=2

52、0300H(20300H)=4800H f IP段内存储器间接转移,目的地址为1200H:4800H(或16800H)(4)JMP FAR PROG_F段间直接转移,目的地址为 3400H:0ABCH(或34ABCH) (5)JMP DWORD PTRBX物理地址=DSX 10H+BX=2000H X 10H+0300H=20300H(20300H)=4800H f IP, (20302H)=00FFH f CS段间存储器间接转移,目的地址为00FFH:4800H(或057F0H)JMP改为CALL后,目的地址与 JMP相同。(1)CALL PROG_N段内直接调用,3字节指令,目的地址为 1

53、200H:0278H(或12278H), 0103H入栈,SP=03FEH (2)CALL BX段内寄存器间接调用,2字节指令,目的地址为 1200H:0300H(或12300H) , 0102H入栈,SP=03FEH(3)CALL BX段内存储器间接调用,2字节指令,目的地址为 1200H:4800H(或16800H), 0102H入栈,SP=03FEH(4)CALL FAR PROG_F段间直接调用,5字节指令,目的地址为 3400H:0ABCH(或34ABCH) , 1200H和0105H分别入栈,SP=03FCH(5)CALL DWORD PTRBX段间间接调用,2字节指令,目的地址为

54、 00FFH:4800H(或057F0H) , 1200H和0102H分别入栈,SP=03FCH部分调试程序:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTBUF DW 12BUF1 DW 100 DUP (?)ORG 300HDB 00H,48H,0FFH,00HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSMOV AX,DA TAMOV DS,AXMOV BX,0300HCALL PROG_NCALL BXCALL BXORG 0278PROG

55、_N:RETORG 0300HRETORG 4800HRETHLTCODE ENDSEND START.如在下列程序段的括号中分别填入以下指令:LOOP NEXT LOOPE NEXT LOOPNE NEXTAX, BX, CX, DX 寄存器的内容分别是什么试说明在这三种情况下,程序段执行完后,START: MOV AX, 01HMOV BX, 02HMOV DX, 03HMOV CX, 04HNEXT:INC AXADD BX, AX SHR DX, 1()解:LOOP 过程:AXBXCX初始值01H02H循环1次02H04H循环2次03H07H循环3次04H0BH循环4次05H10H结果

56、:AXBXCX(1)05H10H00H(2)02H04H03H执行一次,ZF=0,退出循环。(3)03H07H02H执行两次,ZF=1 ,退出循环。DX04H03 H03H 01H02H00H01H00H00H00HDX00H01H00H20.设8086CPU的时钟频率为 5MHz ,请编写延时 5ms的子程序解:微机的主频率为 5MHz则:时钟周期=主频率的倒数=1/ (5X10-6)延时5ms需要的时钟周期数 =5ms/ 0.2 s=25000延时子程序如下:43 X N17 X ( N-1) + 516DELAY5 : MOV CX , NDLY1 : NOP LOOP DLY1RET应

57、该有25000=4+ 3 XN+ 17 X (N-1) + 5+16,才能实现要求的延时。则:N=1250=04E2H延时子程为:DELAY5 : MOV CX , 04E2HDLY1 : NOP LOOP DLY1RET第4章作业P1535.阅读下列程序,说明每条指令执行后的结果是什么?X1 DB 65H,78HX2 DW 06FFH, 5200HX3 DD ?GO: MOV AL, TYPE X1MOV BL, TYPE X2MOV CL, TYPE X3MOV AH, TYPE GOMOV BH, SIZE X2MOV CH, LENGTH X3 解:(1)前三条语句的功能是设置数据于数

58、据段中,从数据段偏移地址0000H开始存放。程序汇编后结果如下:13CF:O03C 13CF:O09E 13CF:00LG 13CF:O01i 13CF:00L3 13CF:0H14 i3CF:001013CF:Q0L9 1JCF:O01C 13CF:001E -G=12CF-C变量偏移地址X10000H0001HX20002H0003H0004H0005HX30006H0007H0008H0009H数据B4FF 3-702 B5Q1 IP F4 02BAFFFF 0 B80SO0 50 8DB7AFE 00 19CF-0G13HOU nou NOV POP ULI OD1 PUSH HOU

59、PUSH LEAHHHS nBCDFp器FHBX+GT*PFFFJ口式R 乂_00SQMfiX,BP+FE7ftX=FPA1 RM=02口之 S-13F7 FS-13H7 3CF:ni3 F4-Di mCE ;丽l祁 2CE:eBB C 7fiIF H8 MCE:制盟同幅M 3CE:RM3H FE SR RCE:葩40 Al 箝 F二口的3 WR 4S WCFiOflRf) FF 而 3CF:HH7fl ffi SECM =0104 班=麻1%1 SP=0防才SS-1?C7 CS-13CF TP-RP11RP=&%H &I/部助 口】=蒯即INU IIP FT PL HZ NA PO HC7

60、次MIL7EM 6J4RBR7F M IF4HRn.h pF817fi4F C1F2ASC白田 H GR-MW uh Kkl HI -B3 BR FF FF-SB S3 C4 P6-BF 3c 31 39-87 0口 FF RG b, flR ER SD-dMg HW). R1 04 RR 眶 RR IE St B7 RF 22 R9Efl9A S5 RB%修0师R4 PF B7 2 5H RD flfi 7ft D1 E3 M E3 97 C0 ?2 PC ftA C4 02FC FC 9n六条程序执行结果如下:(AL) =01H;设置变量类型属性,字节数(BL) =02H;设置变量类型属性

温馨提示

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

最新文档

评论

0/150

提交评论