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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微型计算机原理与接口技术第三版文档格式.docx

1、1.8已知 X= -1101001B Y二-1010110B 用补码求 X-Y的值 解:111011011.9请写出下列字符的ASCI码。4A3-!34H, 41H, 33H, 3DH, 21H1.10若给字符4和9的ASCI码加奇校验,应是多少?34H, B9H1.11上题中若加偶校验,结果如何? B4H, 39H1.12计算下列表达式。(1)(4EH+10110101B)x(0.0101)BCD=()D( 2)4EH-( B)/2=() B(1) 129.5D(2) 101010B第 2xx 微型计算机基础2.6简述CPU执行程序的过程。当程序的第一条指令所在的地址送入程序计数器后, CP

2、U就进入取指阶段准备取第一条指令。在取指阶段, CPU从内存中读出指令,并把指令送至指令寄存器IR暂存。在取指阶段结束后,机器就进入执行阶段,这时,由指令 译码器对指令译码,再经控制器发出相应的控制信号,控制各部件执行指令所 规定的具体操作。当一条指令执行完毕以后,就转入了下一条指令的取指阶 段。以上步骤周而复始地循环,直到遇到停机指令。2.7说明8086的EU和BIU的主要功能。在执行程序过程中他们是如何相互 配合工作的?执行单元EU负责执行指令。EU在工作时不断地从指令队列取出指令 代码,对其译码后产生完成指令所需要的控制信息。数据在 ALU中进行运算,运算结果的特征保留在标志寄存器 FL

3、AGS中。总线接口单元BIU负责CPU与存 储器、I/O接口之间的信息传送。BIU取出的指令被送入指令队列供 EU执行,BIU 取出的数据被送入相关寄存器中以便做进一步的处理。当 EU 从指令队列中取走指令,指令队列出现空字节时, BIU 就自动执行一次取指令周期,从内存中取出后续的指令代码放入队列中。当EU需要数据时,BIU根据EU给出的地址,从指定的内存 单元或外设中取出数据供EU使用。当运算结束时,BIU将运算结果送入指定的 内存单元或寄存器。当指令队列空时,EU就等待,直到有指令为止。若 BIU正 在取指令,EU发出访问总线的请求,则必须等 BIU取指令完毕后,该请求才能 得到响应。一

4、般情况下,程序顺序执行,当遇到跳转指令时, BIU 就使指令队列复位,从新地址取出指令,并立即传送 EU去执行。指令队列的存在使的EU和BIU并行工作,从而减少了 CPU为取指令而等待 的时间,提高了 CPU的利用率,加快了整机的运行速度。另外也降低了对存储 器存取速度的要求。2.8在执行指令期间,BIU能直接访问存储器吗?为什么?解:可以因为EU和BIU可以并行工作,EU需要的指令可以从指令队列中获 得,这时BIU预先从存储器中取出并放入指令队列的。在 EU执行指令的同时, BIU 可以访问存储器取下一条指令或指令执行时需要的数据。2.98086与8088CPU的主要区别有哪些?主要区别有以

5、下几点:18086 的外部数据总线有 16 位,而 8088 的外部数据总线只有 8 位。28086 指令队列深度为 6 个字节 ,而 8088 的指令队列深度为 4 个字节 .3因为 8086的外部数据总线有 16 位,故 8086 每个总线周期可以存取两个 字节.而 8088 的外部数据总线因为只有 8 位,所以每个总线周期只能存取 1 个字 节. 个别引脚信号的含义稍有不同 .2.108088CPU工作在最小模式下:(1)当CPU访问存储器时,要利用哪些信号?(2)当CPU进行I/O操作时,要利用哪些信号?(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻?(1)要利用信号线包括

6、WR# RD# IO/M#、ALE以及AD0AD7A8A19。( 2)同( 1 )。( 3)所有三态输出的地址信号、数据信号和控制信号均置为高阻态。2.11总线周期中,什么情况下要插入 TW等待周期?插入TW周期的个数, 取决于什么因素?在每个总线周期的T3的开始处若READY为低电平,则CPU在 T3后插 入一个等待周期TW。在TW的开始时刻,CPU还要检查READY犬态,若仍为低 电平,则再插入一个TW。此过程一直进行到某个TW开始时,READY已经变为 高电平,这时下一个时钟周期才转入 T4。可以看出,插入TW周期的个数取决于READY电平维持的时间。2.12若8088工作在单CPU方式

7、下,在教材第91页的表中填入不同操作时 各控制信号的状态。结果如表所示。2.13在中,标志寄存器包含哪些标志位?各位为 0(为 1)分别表示什么含 义?(略),见书第 49页。中,有哪些通用寄存器和专用寄存器?说明它们的作用。通用寄存器包含以下 8个寄存器:AX、BX CX和DX寄存器一般用于存放参与运算的数据或运算的结果。除 此之外:AX:主要存放算术逻辑运算中的操作数,以及存放 I/O操作的数据。BX:存放访问内存时的基地址。CX:在循环和串操作指令中用作计数器。DX:在寄存器间接寻址的I/O指令中存放I/O地址。在做双字长乘除法运算 时,DX与AX合起来存放一个双字长数。SP存放栈顶偏移

8、地址。BP:SP和BP也可以存放数据,但它们的默认段寄存器都是 SSSI:常在变址寻址方式中作为源地址指针。DI:常在变址寻址方式中作为目标地址指针。专用寄存器包括 4 个段寄存器和两个控制寄存器:CS代码段寄存器,用于存放代码段的段基地址。DS:数据段寄存器,用于存放数据段的段基地址。SS堆栈段寄存器,用于存放堆栈段的段基地址。ES附加段寄存器,用于存放附加段的段基地址。IP 指令指针寄存器,用于存放下一条要执行指令的偏移地址。FLAGS 标志寄存器,用于存放运算结果的特征。系统中,存储器为什么要分段?一个段最大为多少个字节?最小为多少个 字节?分段的主要目的是便于存储器的管理,使得可以用

9、16 位寄存器来寻址 20位的内存空间。一个段最大为 64KB,最小为16B。2.16在CPU中,物理地址和逻辑地址是指什么?已知逻辑地址为 仆00:38A0H,如何计算出其对应的物理地址?物理地址时CPU存取存储器所用的地址。逻辑地址是段和偏移地址形 式的地址,即汇编语言程序中使用的存储器地址。若已知逻辑地址为1F00: 38A0H,则对应的物理地址 =1F00Hx16+38A0H=228A0H。2.17已知存储器物理地址为78A00H,计算出它所对应的逻辑地址。此结果 惟一吗?物理地址可以对应于不同的逻辑地址。 78A00H对应的逻辑地址可以是7000H: 8A00H, 7800H: 0A

10、00H, 78A0H: 0000H 等。结果不是惟一的。2.18设当前数据段位于存储器的 A8000HB7FFFH DS段寄存器的内容应是 什么?因为A8000H到B7FFFH之间的地址范围大小为64KB,未超出一个段的 最大范围。故要访问此地址范围的数据,数据段的起始地址(即段首地址)应 为A8000H,贝卩DS段寄存器为 A800H。2.19若CS=8000H则当前代码段可寻址的存储空间的范围是多少?解(CS =8000H时,当前代码段可寻址的存储空间范围为 80000H8FFFFH。2.20CPU在最小模式下构成计算机系统至少应包括哪几个基本部分(器 件)?其至少应包括:8088CPU

11、8284时钟发生器、8282锁存器(3片)和 8286 双向总线驱动器。第 3xx 指令系统3.1什么叫寻址方式?共有哪几种寻址方式?寻址方式主要是指获得操作数所在地址的方法具有:立即寻址、直接 寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址一变址寻址、基 址一变址相对寻址以及隐含寻址等 8 种寻址方式。3.2设( DS)=6000H,( ES)=2000H,( SS)=1500H,( Si)=00A0H,(BX)=0800H (BP)=1200H数据变量VAR为0050H.请分别指出下列各条指令源 操作数的寻址方式?它的物理地址是多少?(1)MOV AX,BX (2) MOV DL,

12、80H(3)MOV AX, VAR (4) MOV AX,VARBXSI(5)MOV AL,B (6) MOV DI, ES: BX(7) MOV DX,BP (8) MOV BX 20HBX(1)寄存器寻址。因源操作数是寄存器,故寄存器 BX就是操作数的地址.(2)立即寻址。操作数80H存放于代码段中指令码 MOV之后。(3)直接寻址。( 4)基址一变址一相对寻址操作数的物理地址=(DS) X W (Sl)+ (BX)+ VAR=60000H + 00A0 H+ 0800H+ 0050H= 608F0H(5)立即寻址(6)寄存器间接寻址 .操作数的物理地址 = (ES) X+16(BX)=

13、20000H+ 0800H = 20800H(7)寄存器间接寻址。操作数的物理地址 = (SS) X+1(6BP)= 15000H 1200H= 16200H(8)寄存器相对寻址操作数的物理地址=(DS) X 16(BX)+ 20H= 60000H0800H20H= 60820H3.3假设(DS)=212AH,(CS)=0200H,(IP)=1200H,(BX)=050W量 DATA=40H (217A0H) =2300H (217E0H)=0400H (217E2H) =9000H试确定下列转移指令的转 移地址.(1)JMP 2300H(2)JMP WORD PTRBX(3)JMP DWOR

14、D PTRBX+DATA转移指令分为段内转移和段间转移,根据其寻址方式的不同,又有段 内的直接转移和间接转移,以及段间的直接转移和间接转移地址。对直接转 移,其转移地址为当前指令的偏移地址(即 IP的内容)加上位移量或由指令中直接得出;对间接转移,转移地址等于指令中寄存器的内容或由寄存器内容所 指向的存储单元的内容。=02000H+2300H=04300H= (CS) X l6+(217A0H)(3)段间间接转移。转移的物理地址 =BX+DATA=(217E2H) X l6+(217E0H)=90000H+0400H=90400H3.4试说明指令 MOV BX,5BX与指令LEA BX,5BX

15、的区别前者是数据传送类指令,表示将数据段中以 (BX+5为偏移地址的16位 数据送寄存器 BX.后者是取偏移地址指令,执行的结果是(BX)= (BXH 5,即操作数的偏移地 址为(BX)+53.5设堆栈指针SP的初值为2300H, (AX)= 50ABH, (BX)=1234H执行指令 PUSHAX后,(SP)=?,再执行指令 PUSH BX及 POP AX之后,(SP)= (AX)二? (BX)=?堆栈指针SP总是指向栈顶,每执行一次 PUSH指令SP-2执行一次 POP指令 SP+2所以,执行 PUSH AXf 令后,(SP)=22FEH再执行 PUSH BX POP AX后,(SP)=2

16、2FEH (AX)=(BX)=1234H3.6指出下列指令的错误:(1)MOV AH, CX (2) MOV 33H, AL(3) MOV AX, SIDI (4) MOV BX, SI(5) ADD BYTE PTRBP,256 (6) MOV DATASI,ES:AX(7) JMP BYTE PTRBX (8) OUT 230H,AX(9)MOV DS,BP (10) MUL 39H(1)指令错。两操作数字长不相等(2)指令错。 MOV 指令不允许目标操作数为立即数(3)指令错。在间接寻址中不允许两个间址寄存器同时为变址寄存器。(4)指令错。 MUV 指令不允许两个操作数同时为存储器操作数

17、。(5)指令错。ADD指令要求两操作数等字长。(6)指令错。源操作数形式错,寄存器操作数不加段重设符。(7)指令错。转移地址的字长至少应是 16 位的。(8)指令错。对输人输出指令,当端口地址超出 8 位二进制数的表达范围 (即寻址的端口超出 256 个)时,必须采用间接寻址。(9)指令正确。(10)指令错。 MUL 指令不允许操作数为立即数。3.7已知(AL) =7BH, (BL) =38试问执行指令 ADD AL, B后,AF、CF OF、PF、 SF和ZF的值各为多少? AF=1,CF=0,OF=1,PF=0,SF=,l ZF=03.8试比较无条件转移指令、条件转移指令、调用指令和中断指

18、令有什么异同?无条件转移指令的操作是无条件地使程序转移到指定的目标地址,并 从该地址开始执行新的程序段,其转移的目标地址既可以是在当前逻辑段,也 可以是在不同的逻辑段;条件转移指令是在满足一定条件下使程序转移到指定 的目标地址,其转移范围很小,在当前逻辑段的 -128+127地址范围内。调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计 好的。根据所调用过程人口地址的位置可将调用指令分为段内调用(入口地址在当前逻辑段内)和段间调用。在执行调用指令后, CPU要保护断点。对段内调用是将其下一条指令的偏移地址压人堆栈,对段间调用则要保护其下一条指令 的偏移地址和段基地址,然后将子程序

19、人口地址赋给 IP (或CS和IP).中断指令是因一些突发事件而使 CPU暂时中止它正在运行的程序,转去执行 一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序。它 是随机的。在响应中断后 CPU不仅要保护断点(即INT指令下一条指令的段地 址和偏移地址),还要将标志寄存器 FLAGS压入堆栈保存。3.9试判断下列程序执行后,BX中的内容.MOV CL, 3MOV BX,0B7HROL BX,1ROR BX,CL该程序段是首先将BX内容不带进位循环左移1位,再循环右移3位。即相当于将原BX内容不带进位循环右移2位,故结果为:(BX)=0C02DH3.10按下列要求写出相应的指令或

20、程序段。(1)写出两条使AX内容为0的指令。(2)使BL寄存器中的高4位和低4位互换。(3)屏蔽CX寄存器的bll,b7和b3位。测试DX中的b0和b8位是否为1。(1)MOV AX,0XOR AX,AX ;A寄存器自身相异或,可使其内容清 0(2)MOV CL, 4ROL BL,CL将BL内容循环左移4位,可实现其高4位和低4位的互换(3)AND CX,0F777H将CX寄存器中需屏蔽的位 与”。也可用 或”指令实现AND DX,0101H将需侧试的位 与”,其余 与”(屏蔽掉CMP DX,0101 H 与 0101H 比较JZ ONE若相等则表示b0和b8位同时为1 .3.11分别指出以下

21、两个程序段的功能 :(1)(2)MOV CX,l0 CLDLEA SI,FIRST LEA DI, 1200HLEA DI, SECOND MOV CX,0FOOHSTD XOR AX,AXREP MOVSB REP STOSW(1)该段程序的功能是:将数据段中 FIRST为最高地址的10个字节数据按减 地址方向传送到附加段SECOND为最高地址的向前10个单元中。(2)将附加段中偏移地址为1200H单元开始的OFOOH个字单元清0。3.12执行以下两条指令后,标志寄存器 FLAGS的六个状态位各为什么状 态? MOV AX,84A0HADD AX,9460H执行ADD指令后,6个状态标志位的

22、状态分别为:在两个16位数进行加法运算时,对 CF ZF SF和 OF会产生影响,但对PF 和AF标志位,只有其低8位的运算影响它们的状态。各标志位的状态分别为: AF=0, PF=1, CF=1, ZF=0, SF=0, OF=1。3.13 将+46和-38 分别乘以 2,可应用什么指令来完成?如果除以 2呢?因为对二进制数,每左移一位相当于乘以 2,右移一位相当于除以 2。所 以,将+46和-38分别乘以2,可分别用逻辑左移指令(SHL和算术左移指令(SAL) 完成。SHL指令针对无符号数,SAL指令针对有符号数。当然,也可以分别用无符号数乘法指令 MUL和有符号数乘法指令IMUL完 成。

23、如果是除以2,则进行相反操作,即用逻辑右移指令 SHR或无符号数除法指 令DIV实现+46除以2的运算,用算术右移指令SAR或有符号数除法指令IDIV 实现-38 除以 2 的运算。3.14 已知 AX=8060H,DX=03F8H 端口 P0RT1 的地址是 48H,内容为 40H;P0RT2的地址是84H,内容为85H。请指出下列指令执行后的结果。(1)OUT DX, AL(2)IN AL,PORT1(3)OUT DX,AX(4)IN AX,48H(5)OUT PORT2,AX(1)将60H输出到地址为03F8H的端口中。从PORT1读入一个字节数据,执行结果:(AL)=40H(3)将AX

24、=8060H输出到地址为03F8H的端口中。(4)由48H端口读人16位二 进制数。(5)将8060H输出到地址为84H的端口中。第 4xx 汇编语言程序设计4.1请分别用DB DW、DD伪指令写出在DATA开始的连续8个单元中依次 存放数据 11H、 22H、 33H、 44H、 55H、 66H、 77H、 88H 的数据定义语句 .DB,DW,DD伪指令分别表示定义的数据为字节类型、字类型及双字型 其定义形式为 :DATA DB 11H,22H,33H,44H,55H,66H,77H,88HDATA DW 2211H,4433H,6655H,8877HDATA DD 44332211H,

25、88776655H4.2若程序的数据段定义如下 ,写出各指令语句独立执行后的结果 :DSEG SEGMENTDATA1 DB 10H,20H,30HDATA2 DW 10 DUP(?)STRING DB 123DSEG ENDS(1)MOV AL,DATA1(2)MOV BX,OFFSET DATA2(3)LEA SI,STRINGADD DI,SI取变量DATA1的值指令执行后,(AL)=10H.变量DATA2的偏移地址.指令执行后,(BX)=0003H.(3)先取变量STRING的偏移地址送寄存器SI之后送SI的内容与DI的内容相 加并将结果送DI指令执行后,(SI)=0017H;(DI)

26、=(DI)+0017H.4.3试编写求两个无符号双子长数之和的程序 .两数分别在 MEM1 和 MEM2 单元中和放在SUM单元.MEM1 DW 1122H,3344HMEM2 DW 5566H,7788HSUM DW 2 DUP(?CSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART: MOV AX,DSEGMOV DS,AXLEA BX,MEM1LEA SI,MEM2LEA DI,SUMMOV CL,2CLCAGAIN: MOV AX,BXADC AX,SIMOV DI,AXADD BX,2ADD SI,2ADD DI,2LOOP AGAINHLTCSEG END

27、SEND START4.4试编写程序,测试AL寄存器的第4位(bit4)是否为0?测试寄存器AL中某一位是否为0,可使用TEST指令、AND指令、移位指 令等几种方法实现。女口: TEST AL 10HJZ NEXTNEXT 或者: MOV CL, 4SHL AL,CLJNC NEXTNEXT:4.5试编写程序,将BUFFER的一个8位二进制数转换为ASCI码,并按位 数高低顺序存放在ANSWER开始的内存单元中。BUFFER D?BANSWER DB 3 DU(P?ASSUME C:S CSEG,DS:START: MOV AX, DSEGMOV DS,AXMOV CX 3;最多不超过3为十进制数(255)LEA DI ANSWER; DI 指向结果存放单元XOR AX, AXMOV AL, BUFFER取要转换的二进制数MOV BL, OAH;基数 10 DIV BL用除10取余的方法转换ADD AH 30H;十进制数转换成ASCI码MOV DI,AH;保存当前的结果INC D ;I 指向下一个位保存单元AND AL,AL;商为0?(转换结束?JZ STO若结束,退出MOV AH,0LOOP AGAIN否则循环继续STO: MOV AX, 4C00HINT 21H;返回 DOS4.6 假设数据项定义如下:DATA1 DBHEL!LOG

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

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