16、32位微机原理、汇编语言与接口技术教程课后复习题答案
1632位微机原理汇编语言及接口技术第八章课后习题答案
习题8.4中断请求寄存器IRR保存8条外界中断请求信号IR0~IR7的请求状态Di位为1表示IRi引脚有中断请求;为0表示无请求中断服务寄存器ISR保存正在被8259A服务着的中断状态Di位为1表示IRi中断正在服务中;为0表示没有被服务中断屏蔽寄存器IMR保存对中断请求信号IR的屏蔽状态Di位为1表示IRi中断被屏蔽(禁止);为0表示允许习题8.6某时刻8259A的IRR内容是08H,说明IR3引脚有中断请求。
某时刻8259A 的ISR内容是08H,说明IR3正在被中断服务,其它不被处理。
在两片8259A级连的中断电路中,主片的第5级IR5作为从片的中断请求输入,则初始化主、从片时,ICW3的控制字分别是 20H 和 05H 。
习题8.9普通全嵌套方式:8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、……IR7;中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线;在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套。
普通中断结束方式:配合全嵌套优先权方式使用;CPU用输出指令往8259A发出普通中断结束EOI命令;8259A就会复位正在服务的中断中优先权最高的ISR位。
习题8.13int08h proc far ;远过程sti ;开中断,允许中断嵌套push ds ;现场保护push axpush dx…… ;日时钟计时…… ;控制软驱马达int 1ch ;调用指令中断1CHmov al,20h ;发送EOI命令(00100000B,D4D3=00,说明是OCW2)out 20h,alpop ax ;现场恢复pop dxpop dsiret ;中断返回。
微机原理汇编语言与接口技术课后答案
微机原理汇编语言与接口技术课后答案【篇一:《微机原理、汇编语言与接口技术》复习练习题与答案(new)】lass=txt>一、填空题1、8086/8088 cpu内部结构按功能分为两部分,即由单元和单元组成。
2、若cpu的数据线宽度为16位,则它的字长为位;地址线宽度为20位,则它的寻址空间为 1mb 。
3、8086cpu为了适应各种应用场合有两种工作模式,即是最小模式和最大模式。
4、8086/8088cpu复位后,cs的内容为 0ffffh ,ip的内容为0000h 。
5、8086的16位标志寄存器包括 6 个状态标志位和 3 个控制标志位。
6、计算机的i/o端口地址的编址方式有统一编址和独立编址,而8086cpu寻址外设采用独立编址方式。
7、cpu与外设间有4种i/o信息传送方式,即无条件传送、查询传送中断传送、直接存储器存取(dma)。
8、若某输出外设的i/o接中的数据端口地址为100h,要将字节数据从8086cpu输出到外设的指令是mov dx,100h和out dx,al。
9、响应可屏蔽中断intr的条件是控制标志if= 1。
10、若8253的某一计数器用于输出方波,该计数器的工作方式为;若该计数器输入频率为100khz,输出方波频率为10khz,则计数初值应设为 10。
11、串行通信协议分为和。
12、波特率是指单位时间内传送二进制数据的位数。
13、8088 组成的系统中,存储器分个不超过字节的段。
14、当8088cpu的intr端输入一个电平时,获得了中断请求。
15、8088工作于最小工作模式时,控制总线由产生,工作于最大工作模式时,控制总线由总线控制器8288产生。
16、数据的并行i/o方式是以为单位进行传送;数据的串行i/o方式是以为单位进行传送。
17、从地址/数据复用线中分离出地址信息需用逻辑芯片,地址/数据复用线中的双向数据传送需用逻辑芯片双向缓冲器。
18、中断优先权管理的方法有、和。
1632位微机原理与汇编语言课后第三章习题答案
习题 3.9(1)mov al, 23h and 45h or 67h;al=67h(2)mov ax, 1234h/16 + 10h;ax=0133h(3)mov ax, 23h shl 4;ax=0230h(4)mov al, ‘a’ and (not (‘a’-’A’));al=41h(5)mov ax, (76543 lt 32768) xor 7654h;ax=7654h习题 3.10(1)41h 42h 43h 0ah 10h 45h 46h ffh - 04h 04h 04h ffh - 04h 04h04h ffh - 04h 04h 04h(2)10h 00h fbh ffh - - - - - -习题 3.11(1)my1b db 'Personal Computer'(2)my2b db 20(3)my3b db 14h(4)my4b db 00010100b(5)my5w dw 20 dup(?)(6)my6c equ 100(7)my7c equ < Personal Computer >习题 3.14(1)offset varb = 0104h;offset mess = 0114h(2)type buff = 1;type mess = 1;type vard = 4(3)sizeof varw = 4;sizeof buff = 10;sizeof mess = 5(4)lengthof varw =2;lengthof vard = 1习题 3.15(1)mov byte ptr [bx],1000 ;1000超出了一个字节范围(2)mov bx,offset myword[si];OFFSET只能用于简单变量.寄存器的值只有程序执行时才能确定,而offset是汇编过程计算偏移地址,故无法确定,可以改为lea bx,myword[si](3)cmp mybyte1,mybyte2 ;两个都是存储单元,指令不允许(4)mov mybyte1,al+1 ;数值表达式应为运算符加常量,寄存器值只有执行时才能确定,汇编时无法计算(5)sub al,myword ;字节量AL与字量myword,类型不匹配(6)jnz myword ;Jcc指令只有相对短转移寻址方式,不支持间接寻址方式,间接寻址指指令代码中指示寄存器或存储单元,目的地址从寄存器或存储单元中取得习题 3.16.model small ;定义程序的存储模式.stack ;定义堆栈段.data ;定义数据段.codestart: mov ax,@data;程序段起点mov ds,ax ;设置DSmov ah,1 ;只允许输入小写字母int 21hsub al,20h ;转换为大写字母mov dl,almov ah,2int 21h ;显示mov ax,4c00hint 21hend start习题 3.17ASCTOH macrolocal asctoh1,asctoh2cmp al,'9'jbe asctoh1 ;;小于等于‘9’,说明是0~9,只需要减去30hcmp al,'a'jb asctoh2 ;;大于‘9’,小于‘a’,说明是A~F,还要减7sub al,20h ;;大于等于‘a’,说明是a~f,还要减20h asctoh2: sub al,7asctoh1: sub al,30hendm.model small ;定义程序的存储模式.stack ;定义堆栈段.data ;定义数据段LEDtable db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0c1h,86h,8ehdispmsg db 'input a number:$'crlf db 0dh,0ah,'$'lednum db ?.codestart: mov ax,@data;程序段起点mov ds,ax ;设置DSmov dx,offset dispmsgmov ah,09hint 21hmov ah,1int 21hasctohmov lednum,almov dx,offset crlfmov ah,09hint 21hmov bx,offset LEDtablemov al,lednumxlatmov bl,almov cl,4rol al,clcall htoascmov al,blcall htoascmov ax,4c00hint 21hHTOASC proc;子程序HTOASC:将al低4位表达的十六进制数转换为ASCII码push bxmov bx,offset ASCII ;bx指向ascii码表and al,0fh ;取得一位16进制数xlat CS:ASCII ;换码:AL←CS:[BX+AL]mov dl,almov ah,2int 21hpop bxret;数据区ASCII db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39hdb 41h,42h,43h,44h,45h,46hHTOASC endpend start习题3.18mov al, bufXcmp al, bufYjae donemov al, bufYdone: mov bufZ, al习题3.19.;习题3.19.model small.stack.databufX dw -7signX db ?.codestart: mov ax,@datamov ds,axcmp bufX,0 ;test bufX,80hjl next ;jnz nextmov signX,0jmp donenext: mov signX,-1done: mov ax,4c00hint 21hend start习题3.20.;习题3.20.model small ;定义程序的存储模式.stack ;定义堆栈段.data ;定义数据段bufx dw -1bufy dw -1bufz dw -1.codestart: mov ax,@data;程序段起点mov ds,ax ;设置DSmov dl,'2'mov ax,bufxcmp ax,bufyje next1dec dlnext1: cmp ax,bufzje next2mov bx,bufycmp bx,bufzje next2dec dlnext2: mov ah,2int 21hmov ax,4c00hint 21hend start习题3.21.;数据段number db 78h ;实现假设的一个数值0111 1000B,D3为1addrs dw offset fun0,offset fun1,offset fun2,offset fun3dw offset fun4,offset fun5,offset fun6,offset fun7;取得各个处理程序开始的偏移地址.codestart: mov ax,@data;程序段起点mov ds,ax ;设置DSmov al,numbermov bx,0 ;BX←记录为1的位数mov dl,'?' ;处理数据为零的情况,显示?cmp number,0jnz restartmov ah,2int 21hjmp doneRestart: cmp al,0 ;AL=0结束jz doneagain: shr al,1 ;最低位右移进入CFjc next ;为1,转移inc bx ;不为1,继续,只在不为1的时候增加bx,所以后文补充jmp againnext: push axpush bxshl bx,1 ;位数乘以2(偏移地址要用2个字节单元)jmp addrs[bx] ;间接转移:IP←[table+BX];以下是各个处理程序段fun0: mov dl,'0'jmp dispfun1: mov dl,'1'jmp dispfun2: mov dl,'2'jmp dispfun3: mov dl,'3'jmp dispfun4: mov dl,'4'jmp dispfun5: mov dl,'5'jmp dispfun6: mov dl,'6'jmp dispfun7: mov dl,'7'jmp dispdisp: mov ah,2 ;显示一个字符int 21hpop bxpop axinc bx ;注意,即使Di位不为1,为记录确切的分支入口,仍然需要增加bxjmp restartdone: mov ax,4c00hint 21hend start习题3.22.model small ;定义程序的存储模式.stack ;定义堆栈段.data ;定义数据段b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数sum db ? ;预留结果单元.codestart: mov ax,@data;程序段起点mov ds,ax ;设置DSxor si, si ;位移量清零xor al, al ;取第一个数mov cx, num ;累加次数again: add al, b_data[si] ;累加inc si ;指向下一个数loop again ;如未完,继续累加mov sum, al ;完了,存结果mov ax,4c00hint 21hend start习题3.23;xiti323,空格数目放在total中.model small ;定义程序的存储模式.stack ;定义堆栈段.data ;定义数据段total dw ?wtemp dw ? ;是writ子程序的入口参数.codestart: mov ax,0040h ;送段地址mov ds, axmov si, 0 ;偏移地址mov cx, si ;计数(循环次数)xor ax, ax;空格计数器清零again: cmp byte ptr [si], 20h ;与空格的ASCII码比较jne next ;不是空格,转inc ax ;是空格,空格数加1next: inc si ;修改地址指针loop again ;cx=cx-1,如cx=0 退出循环mov total,ax ;total中放空格数mov ax,totalmov wtemp,axcall writemov ax,4c00hint 21hwrite proc ;显示有符号10进制数的通用子程序write push ax ;入口参数:共享变量wtemppush bxpush dxmov ax,wtemp ;取出显示数据test ax,ax ;判断数据是0,正数还是负数jnz write1mov dl,'0' ;是0,显示“0”后退出mov ah,2int 21hjmp write5write1: jns write2 ;是负数,显示“-“mov bx,ax ;ax中数据暂存于bx,因为要用dos调用mov dl,'-'mov ah,2int 21hmov ax,bxneg ax ;数据求补(绝对值)write2: mov bx,10push bx ;10压入堆栈,作为推出标志write3: cmp ax,0 ;数据(商)为0,转向显示jz write4sub dx,dx ;扩展被除数dx.axdiv bx ;数据除以10,dx.ax/10,商送ax,余数送dxadd dl,30h ;余数(0~9)转换为ascii码push dx ;数据各位按照先低位后高位依次压入堆栈jmp write3write4: pop dx ;数据各位按照先高位后低位依次弹出堆栈cmp dl,10 ;判断是否结束,标志为10je write5mov ah,2 ;显示int 21hjmp write4write5: pop dxpop bxpop axretwrite endpdpcrlf proc ;使光标回车换行的子程序push axpush dxmov ah,2mov dl,0dhint 21hmov ah,2mov dl,0ahint 21hpop dxpop axretdpcrlf endpend start习题3.24;数据段count equ 100parray dw count dup(?) ;假设有100个数据wordsum dw 0msg db ‘overflow’,’$’;代码段mov cx,countmov ax,0mov bx,offset parrayagain: add ax,[bx]jnc nextmov dx,offset msgmov ah,9int 21h ;显示溢出信息jmp done ;然后,跳出循环体next: add bx,2loop againmov wordsum,axdone: mov ax,4c00hint 21h习题3.25;xiti325.asm;编程把—个16位无符号二进制数转换成为用8421BCD码表示的5位十进制数。
微机原理及接口技术课后习题答案
凶 原=11000000, 凶 反=10111111, 凶 补=11000000
[Y]原=11000010,[Y]反=10111101,[Y]补=10111110
[X]补+[Y]补=11000000+10111110=01111110,有溢出。
11.试用8位二进制写出以下数、字母以及控制命令的ASCH码,还要写出它们各自的
4.16位微处理器有哪些通用寄存器?
答:
AX BX CX DX SI、DI、SF和BP。
5.16位微处理器有哪4个段寄存器?每个段寄存器的作用是什么?
答:
4个段寄存器分别是代码段寄存器CS数据段寄存器DS附加段寄存器ES及堆栈段寄
存器SSo
(1)代码段寄存器CS是—个随机存取存储区,用来保存微处理器使用的程序代码。在
答:
虽然32位微处理器将8086原来的8个16位通用寄存器AX BX CX DX SI、DI、BP SP匀扩展成(Extended)32位的寄存器,即EAX EBX ECX EDX ESI、EDI、EBP ESP但是,它保留了原来的8个16位寄存器和8个8位的寄存器,仍然可以使用它们编程, 当 然,所编写的程序仍然可以在32位机上运行。既可以用32位寄存器编程,还可以用16位 及8位寄存器编程,这就实现了寄存器的兼容。
4•什么叫总线?总线包括哪三种?
答:
所谓总线,它将多个功能部件连接起来,并提供传送信息的公共通道,能为多个功能
部件分时共享,CPUS过总线连接存储器和I/O接口等,构成了微型计算机。
这里指的总线(BUS包括地址总线、数据总线和控制总线三种。
5•地址总线的作用是什么?
答:
地址总线(Address Bus,AB),通常是CPI用来发出地址信息的,用于对存储器和I/O
1632位微机原理、汇编语言及接口技术第五章课后习题答案-
1632位微机原理、汇编语言及接口技术第五章课后习题答案-习题 5.2在半导体存储器中, RAM 指的是随机存取存储器 ,他可读可写,但断电后信息一般会丢失 ; 而 ROM 指的是只读存储器 , 正常工作时只能从中读取信息, 但断电后信息不会丢失。
以EPROM 芯片 2764为例, 其存储容量为 8K ×8位, 共有 8 条数据线和 13 条地址线。
用它组成 64KB 的 ROM 存储区共需 8 片 2764芯片。
习题 5.7什么是存储器连接中的 “ 位扩充 ” 和 “ 地址扩充 ” ?欲组成 32KB 的 RAM 存储区,在采用容量 1K ×4位的静态 RAM 芯片或容量16K ×1位的静态 RAM 芯片的情况下,各需要多少芯片?在位方向和地址方向上各要进行什么样的扩充?请画出采用2114芯片时的连接示意图。
解答:⏹位扩充——存储器芯片数据位数小于主机数据线数时,利用多个存储器芯片在数据 “ 位 ”方向的扩充;⏹地址扩充 (字扩充——当一个存储器芯片不能满足系统存储容量时,利用多个存储器芯片在 “ 地址 ” 方向的扩充⏹组成 32KB 存储空间,用 SRAM 2114(1K ×4需要 64个芯片;⏹组成 32KB 存储空间,用 DRAM 4116(16K ×1需要 16个芯片;⏹它们都需要进行位扩充和地址扩充习题 5.8⏹存储芯片为什么要设置片选信号?⏹它与系统地址总线有哪些连接方式?⏹采用何种连接方式可避免地址重复?⏹采用哪些连接方式可节省用于译码的硬件?解答:⏹片选信号说明该存储器芯片是否被选中正常工作,设置它可以比较方便地实现多个存储器芯片组成大容量的存储空间⏹存储器片选信号通常与 CPU 地址总线的高位地址线相关联,可以采用“ 全译码 ” 、 “ 部分译码 ” 、 “ 线选译码 ” 方式⏹采用全译码方式可以避免地址重复⏹采用部分或线选译码可以节省译码硬件习题 5.9:在一个针对存储器的译码系统中,如果有4个地址线未参与译码,那么每个存储单元会同时拥有几个地址?解答:24=16习题 5.10请写出图 5.33中 4个存储芯片各自的可用地址范围,并指明其重复地址解答 1解答 2习题 5.11用 6264芯片(容量 8K ×8位的 SRAM ,采用全译码方式,在 8088系统的内存区段40000H ~43FFFH 扩充 RAM 区。
《微机原理与接口技术》参考答案完整版
《微机原理与接口技术》习题参考答案习题21.为何说8086CPU是16位CPU?答:16位指的是8086CPU的字长,而字长一般来说和运算器、寄存器、总线宽度一致。
因为8086CPU的内部寄存器、内部运算部件以及内部操作都是按16位设计的,这决定了它的字长为16位。
2.8086CPU由哪两个单元组成?其中,指令队列在哪个单元中,有何作用?答:总线接口单元(Bus Interface Unit,BIU)和执行单元(Execution Unit,EU)。
指令队列在BIU中。
它的作用是当EU在执行指令时,空闲的BIU可以从内存读取后续指令到指令队列,这样就可以将取指令工作和执行指令工作重叠进行,从而提高CPU的工作效率,加快指令的执行速度。
3.8086CPU中8位寄存器和16位寄存器是什么关系?答:8086的通用寄存器包括数据寄存器、指针寄存器和变址寄存器。
其中数据寄存器包含AX、BX、CX、DX四个16位寄存器,但他们每个都可以分开作为两个单独的8位寄存器使用。
8086的指针寄存器和变址寄存器不可分割为8位寄存器。
4.8086CPU中的IP寄存器有何用途?答:IP寄存器是指令指针寄存器,用来存放下一条要执行的指令在代码段中的偏移地址。
在程序运行过程中,IP寄存器始终指向下一条指令的首地址,与CS寄存器联合确定下一条指令的物理地址。
8086就是通过IP寄存器来控制指令序列的执行流程。
5.在标志寄存器中,用于反映运算结果属性的标志位有哪些?它们每一位所表示的含义是什么?答:有CF、PF、AF、ZF、SF、OF。
它们的含义如下:CF:进位标志。
它记录运算时从最高有效位产生的进位值或结果值。
最高有效位有进位或有借位时CF=1,否则CF=0。
PF:奇偶标志。
它记录运算结果的奇偶检验条件。
当结果操作数中“1”的个数为偶数时PF=1,否则PF=0。
AF:辅助进位标志。
在字节运算时,由低半字节(字节的低4位)向高半字节有进位或借位时,AF=1,否则AF=0。
16。32位微机原理、汇编语言及接口技术(第二版)第三章课后习题答案。
>第3章3.1:汇编语言有什么特点解:汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2编写汇编语言源程序时,一般的组成原则是什么?解:(1)完整的汇编语言源程序由段组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内(5)通常,程序还需要一个堆栈段3.3 MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪7种存储模式?各用于创建什么性质的程序?解:3.4如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?解:开始位置:用标号指明返回DOS:利用DOS功能调用的4CH子功能来实现汇编停止:执行到一条END伪指令时,停止汇编3.5逻辑段具有哪些属性?解:段定位、段组合和段类型。
3.6给出采用一个源程序格式书写的例题3.1源程序例题3.1:创建一个在屏幕上显示一段信息的程序……解:stack segment stackdb 1024(0)stack endsdata segmentstring db 'Hello,Assembly!',0dH,0aH,‘$’data endscode segment 'code'assume cs:code,ds:data,ss:stackstart: mov dx,offset stringmov ah,9int 21hcode endsend start3.7DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么?解:(1). EXE程序程序可以有多个代码段和多个数据段,程序长度可以超过64KB通常生成EXE结构的可执行程序(2). COM程序只有一个逻辑段,程序长度不超过64KB需要满足一定条件才能生成COM结构的可执行程序(MASM 6.x需要采用TINY模式)3.8举例说明等价“EUQ”伪指令和等号“=”伪指令的用途解:符号定义伪指令有“等价EQU”和“等号=”:符号名 EQU 数值表达式符号名 EQU <字符串>符号名=数值表达式EQU用于数值等价时不能重复定义符号名,但“=”允许有重复赋值。
16 32位微机原理、汇编语言及接口技术第十一章课后习题答案
习题11.4习题11.6连接只改PA→PB,其余不变只要把涉及输出到端口A的代码改为输出到端口B即可。
PC7做选通信号,为输出,即C端高部分为输出PC2为Busy,为输入,即C端低部分为输入C端整个定为方式0B端输出,方式0A端任意,这里为方式0输出假设8255A端口A、B、C和控制端口地址分别为FFF8H、FFFAH、FFFCH和FFFEH。
;8255A的初始化mov dx,0fffeh ;控制端口地址:FFFEHmov al,10000001B ;方式控制字:10000001=81Hout dx,al ;B端口方式0输出,C端口上方式0输出、下方式0输入,; 端口任意(方式0,出)mov al,00001111B ;端口C的复位置位控制字,使PC7=1out dx,al ;使PC7=1,即置STROBE*=1(只有输出数据时才为低脉冲);输出打印数据子程序,入口参数AH=打印数据;查询printc procpush axpush dxprn: mov dx,0fffch ;读取端口Cin al,dx ;查询打印机状态and al,04h ;00000100,PC2=BUSY=0?jnz prn ;PC2=1,打印机忙,则循环等待;打印子程序:输出mov dx,0fffAh ;PC2=0,打印机不忙,则输出数据mov al,ahout dx,al ;将打印数据从端口B输出;打印子程序:打印mov dx,0fffeh ;从PC7送出控制低脉冲mov al,00001110B ;置STROBE*=0out dx,alnop ;产生一定宽度的低电平nopmov al,00001111B ;置PC7=1,即STROBE*=1out dx,al ;最终,STROBE*产生低脉冲信号;打印子程序:返回pop dxpop axretprintc endp习题11.7方式1输出下:端口A的ACK*即PC6,OBF*即PC7,INTR即PC3对应端口B的ACK*即PC2,OBF*即PC1,INTR即PC0数据端口变换为PBmov dx,0fffehmov al,84hout dx,almov al,04h ;使INTEB(PC2)为0,禁止中断out dx,al……mov cx,counter ;打印字节数送CXmov bx,offset buffer ;取字符串首地址call prints ;调用打印子程序prints procpush ax ;保护寄存器push dxprint1: mov al,[bx] ;取一个数据mov dx,0fffahout dx,al ;从端口B输出mov dx,0fffchprint2: in al,dxtest al,02h ;检测(PC1)为1否?jz print2inc bxloop print1pop dxpop axretprints endp习题11.8L0~L3对应PC4~PC7,L亮否可以通过给PC4~PC7置位复位实现,即C端口的高部分为输出;根据K0~K3(PC0~PC3),确定L0~L3(对应PC4~PC7)亮否,所以C端低部分为输入;又C端的8位都被正常使用,所以A端口和B端口均为方式是0;写入方式字mov al,100×00×1b ;=81hmov dx,控制口地址;0fffehout dx,al;加入下一段更好,使L0~L3全亮mov al,0fhmov dx,端口C地址;0fffchout dx,al ;PC4~PC7为高,经反向驱动为0,与阳极间形成通路,LED亮;控制程序段mov dx,端口C地址;0fffchin al,dx ;读入PC0~PC3mov cl,4shl al,cl ;左移4位,PC0~PC3→PC4~PC7out dx,al ;控制PC4~PC7。
微机原理、汇编语言及接口技术教程课后习题答案
!《16/32位微机原理、汇编语言及接口技术教程》部分习题参考解答第1章微型计算机系统概述〔习题〕什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器。
单片机:是指通常用于控制领域的微处理器芯片,其内部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。
~DSP芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。
嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。
〔习题〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕CPU:CPU也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。
处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
(外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。
I/O设备通过I/O接口与主机连接。
总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
〔习题〕什么是总线微机总线通常有哪3组信号各组信号的作用是什么〔解答〕总线:传递信息的共用通道,物理上是一组公用导线。
3组信号线:数据总线、地址总线和控制总线。
(1)地址总线:传输将要访问的主存单元或I/O端口的地址信息。
#(2)数据总线:传输读写操作的数据信息。
(3)控制总线:协调系统中各部件的操作。
〔习题〕简答如下概念:(1)计算机字长(2)取指-译码-执行周期(3)ROM-BIOS(4)中断((5)ISA总线〔解答〕(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。
16/32位微机原理、汇编语言及接口技术第2版-第五章-习题答案
P151第五章部分习题参考答案
5.2 答:随机存取存储器丢失只读存储器读取不丢失8 13 8
5.4 答:应该有12个地址引脚和4个数据引脚。
需安排的控制引脚有:片选CS,读控制OE,写控制WE。
5.5 答:位片结构结构是每片有1位数据线;字片结构是每片有多位数据线。
2114是字片结构,4116是位片结构。
5.7 答:用多个芯片来扩充存储数据的位宽度,这种扩充称为位扩充。
用多个芯片在地址方向上进行扩充,这种扩充称为字扩充。
用2114(1K*4)组成32KB需64片,用4116(16K*1)组成32KB需16片。
5.9 答:每个存储单元会同时拥有16个地址。
5.10 答:
5.11 答:
5.12 答:
5.13 答:2764 8K*8 EPROM 片内A 12—A 0 32KB 空间 使用4片,因为存储空间在8088系统地址最高端的32KB ,所以地址范围为 F8000H —FFFFFH
+5V
D 7-D 0
A 19
A 16A 17A 18。
位微机原理汇编语言及接口技术教程课后习题答案
位微机原理汇编语言及接口技术教程课后习题答案Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】《16/32位微机原理、汇编语言及接口技术教程》部分习题参考解答第1章微型计算机系统概述〔习题〕什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器。
单片机:是指通常用于控制领域的微处理器芯片,其内部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。
DSP芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。
嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。
〔习题〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕CPU:CPU也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。
处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。
I/O设备通过I/O接口与主机连接。
总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
〔习题〕什么是总线微机总线通常有哪3组信号各组信号的作用是什么〔解答〕总线:传递信息的共用通道,物理上是一组公用导线。
3组信号线:数据总线、地址总线和控制总线。
(1)地址总线:传输将要访问的主存单元或I/O端口的地址信息。
(2)数据总线:传输读写操作的数据信息。
(3)控制总线:协调系统中各部件的操作。
微机原理与接口技术课后习题参考答案
微机原理与接口技术》李华贵主编课后习题参考答案第1章(1.6 习题)1.简述名词的概念:微处理器、微型计算机、微型计算机系统。
答:(1)微处理器:微处理器(Microprocessor)简称或MP,或CPU。
CPU是采用大规模和超大规模集成电路技术将算术逻辑部件ALU (Arithmetic Logic Unit )、控制部件CU (Co ntrol Un it )和寄存器组R (Registers)等三个基本部分以及内部总线集成在一块半导体芯片上构成的电子器件。
(2)微型计算机:微型计算机(Microcomputer )是指以微处理器为核心,配上由大规模集成电路制作的存储器、输入/输出接口电路及系统总线等所组成的计算机,简称微机。
(3)微型计算机系统:微型计算机系统由硬件与软件两大部分组成,分别称为硬件(Hardware)系统与软件(Software)系统。
其中,硬件(Hardware)系统由CPU、内存储器、各类I/O接口、相应的I/O设备以及连接各部件的地址总线、数据总线、控制总线等组成。
软件(Software)系统:计算机软件(Software)是指为运行、维护、管理、应用计算机所编制的程序及程序运行所需要的数据文档资料的总和。
一般把软件划分为系统软件和应用软件。
其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。
而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。
2.简述名词的概念:指令寄存器、地址寄存器、标志寄存器。
答:(1)指令寄存器:指令寄存器(Instruction Register,IR)用来保存计算机当前正在执行或即将执行的指令。
当一条指令被执行时,首先,CPU从内存取出指令的操作码,并存入IR中,以便指令译码器进行译码分析。
(2)地址寄存器:地址寄存器(Address Register,AR)被动地接受IP传送给它的地址值(二进制地址),AR的作用是保持IP送来的地址,并且以并行方式连接输出到CPU的地址引脚上,以便CPU访问指定的内存单元。
16/32位微机原理、汇编语言及接口技术第2版-习题答案第二章
16/32位微机原理、汇编语言及接口技术第2版-习题答案第二章第2章微处理器指令系统(习题2)2.20 按照下列要求,编写相应的程序段:⑴起始地址为string的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给DX寄存器。
mov dl,string[1]mov dh,string[6]⑵有两个32位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写程序段完成DX.AX←buffer1-buffer2功能。
mov ax, word ptr buffer1sub ax, word ptr buffer2;先减低16位mov dx, word ptr buffer1+2sbb dx, word ptr buffer2+2;后减高16位,需减低16位的借位⑶编写一个程序段,在DX高4位全为0时,使AX=0;否则使AX=-1。
test dx,0f000hjz nextmov ax,-1jmp donenext: mov ax,0done: …⑷把DX.AX中的双字右移4位答:mov cx,4again: shr dx,1 ;右移一位,移出的低位进入CF标志rcr ax,1 ;将CF移进AX高位,同时实现AX右移loop again ;循环4次,实现4位右移⑸有一个100个字节元素的数组,其首地址为array,将每个元素减1(不考虑溢出或借位)存于原处。
mov cx,100mov bx,0again: sub array[bx],1inc bxloop again2.21 AAD指令是用于除法指令之前,进行非压缩BCD码调整的。
实际上,处理器的调整过程是:AL←AH×10+AL,AH←0。
如果指令系统没有AAD指令,请用一个子程序完成这个调整工作。
aadp procpush bxshl ah,1mov bl,ahshl ah,1shl ah,1add bl,ahadd al,blmov ah,0pop bxretaadp endp2.23 答:htoasc procpush dxand al,0fhaad al,90hdaaadc al,40hdaamov dl,almov ah,2int 21h ;显示个位数pop dxrethtoasc endp2.24 答:dispasc procpush dxxor ah,ahaamadd ax,3030hpush axmov dl,ahmov ah,2int 21h ;显示十位数pop axmov dl,almov ah,2int 21h ;显示个位数pop dxretdispasc endp2.25 编写一个程序段:先提示输入数字“Input Number:0 ~ 9”,然后在下一行显示输入的数字,结束;如果不是键入了0 ~ 9数字,就提示错误“Error!”,继续等待输入数字。
1632位微机原理课后答案
1632位微机原理课后答案【篇一:16。
32位微机原理第3章课后习题答案】/p> 3.1:汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2 解:(1)完整的汇编语言源程序由段组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内(5)通常,程序还需要一个堆栈段3.3 解:3.4解:开始位置:用标号指明返回dos:利用dos功能调用的4ch子功能来实现汇编停止:执行到一条end伪指令时,停止汇编3.5解:段定位、段组合和段类型。
3.6给出采用一个源程序格式书写的例题3.1源程序例题3.1:创建一个在屏幕上显示一段信息的程序?? 解:stack segment stackdb 1024(0)stack ends3.11解:.datamy1bdb personal computermy2bdb 20my3bdb 14hmy4bdb 00010100bmy5wdw 20 dup(?)my6c= 100my7c= personal computer3.12 希望控制变量或程序代码在段中的偏移地址,应该使用哪个伪指令?解:利用定位伪指令控制,如org,even,align3.13名字和符号有什么属性?解:包括逻辑地址和类型两种属性。
3.14解:;数据段org 100hvarw dw 1234h , 5678hvarb db 3 , 4vard dd 12345678hbuff dd 10 dup(?)mess db hello;代码段mov ax , offset varb + offset messmov ax , type buff + type mess + type vard mov ax , sizeof varw+ sizeof buff+ sizeof messmov ax , lengthof varw+ lengthof vard3.15解:(1) 1000超过一个字节所能表达的最大整数(2)si应为偶数(3)两个内存单元不能直接运算(4)应改为[al+1](5)条件转移指令后面应接标号,而不是变量3.16编写一个程序,把从键盘输入的一个小写字母用大写字母显示出来解:mov ah,1 ;只允许输入小写字母int 21hsub al,20h ;转换为大写字母mov dl,almov ah,2int 21h ;显示3.17解:mov bx,offset ledtablemov al,lednumxlat3.18解:done:3.19解:bufxsignxnext:done:3.20解:next1:next2:3.21解:restart:again:next:mov ax, bufx cmp ax, bufy jae done mov ax, bufy mov bufz, ax .model small .stack .data dw -7 db ? .code .startup cmp bufx,0 jl next mov signx,0 jmp done mov signx,-1 .exit 0 end mov dl,’2’ mov ax,bufx cmp ax,bufy je next1 dec dl cmp ax,bufz je next2 dec dl mov ah,2 int 21h ;代码段 mov al,number mov bx,0 cmp al,0 jz done shr al,1 jc next inc bx jmp again push ax push bx shl bx,1 jmp addrs[bx] ;jnz next ←记录为1的位数=0结束最低位右移进入cf 为1,转移不为1,继续位数乘以2(偏移地址要用2个字节单元)间接转移:ip←[table+bx] ;testbufx,80h ;bx;al;;;; ;;以下是各个处理程序段fun0: mov dl,0jmp dispfun1: mov dl,1jmp dispfun2: mov dl,2jmp dispfun3: mov dl,3jmp dispfun4: mov dl,4jmp dispfun5: mov dl,5jmp dispfun6: mov dl,6jmp dispfun7: mov dl,7jmp disp;disp: mov ah,2 ;显示一个字符int 21hpop bxpop axjmp restartdone: ?3.22;wjxt322.asm.model small.stack.datab_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据 num equ 10 ;数据个数sum db ? ;预留结果单元.code.startupxor si, si ;位移量清零xor al, al ;取第一个数mov cx, num ;累加次数again: add al, b_data[si] ;累加inc si ;指向下一个数loop again ;如未完,继续累加mov sum, al ;完了,存结果.exit 0end3.23 求主存0040h:0开始的一个64kb物理段中共有多少个空格? ; wjxt323.asm.model small.codestart: mov ax,0040h ;送段地址【篇二:16 32位微机原理、汇编语言及接口技术第五章课后习题答案】习题5.7什么是存储器连接中的“位扩充”和“地址扩充”?在位方向和地址方向上各要进行什么样的扩充?请画出采用2114芯片时的连接示意图。
16/32位微机原理、汇编语言及接口技术第2版-第三章-习题答案
16/32位微机原理、汇编语⾔及接⼝技术第2版-第三章-习题答案第3章汇编语⾔程序设计(习题3)3.16 解:mov ah,1 ;只允许输⼊⼩写字母int 21hsub al,20h ;转换为⼤写字母mov dl,almov ah,2int 21h ;显⽰3.17 解:mov bx,offset LEDtablemov al,lednumxlat3.18 解:mov ax, bufXcmp ax, bufYjae donemov ax, bufYdone: mov bufZ, ax3.19 解:.model small.stack.databufX dw -7signX db ?.code.startupcmp bufX,0 ;test bufX,80hjl next ;jnz nextmov signX,0jmp donenext: mov signX,-1end3.20 解:mov dl,’2’mov ax,bufXcmp ax,bufYje next1dec dlnext1: cmp ax,bufZje next2dec dlnext2: mov ah,2int 21h3.21 解:;代码段mov al,numbermov bx,0 ;BX←记录为1的位数restart: cmp al,0 ;AL=0结束jz doneagain: shr al,1 ;最低位右移进⼊CFjc next ;为1,转移inc bx ;不为1,继续jmp againnext: push axpush bxshl bx,1 ;位数乘以2(偏移地址要⽤2个字节单元)jmp addrs[bx] ;间接转移:IP←[table+BX];以下是各个处理程序段fun0: mov dl,'0'jmp dispfun1: mov dl,'1'jmp dispfun2: mov dl,'2'jmp dispfun3: mov dl,'3'fun4: mov dl,'4'jmp dispfun5: mov dl,'5'jmp dispfun6: mov dl,'6'jmp dispfun7: mov dl,'7'jmp disp;disp: mov ah,2 ;显⽰⼀个字符int 21hpop bxpop axjmp restartdone: …3.22 编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存⼊字节变量SUM中(不考虑溢出和进位)。
微机原理及接口技术课后习题参考答案
如有你有帮助,请购买下载,谢谢!第1章(1.6 习题)1.简述名词的概念:微处理器、微型计算机、微型计算机系统。
答:(1)微处理器:微处理器(Microprocessor)简称µP或MP,或CPU。
CPU是采用大规模和超大规模集成电路技术将算术逻辑部件ALU(Arithmetic Logic Unit)、控制部件CU (Control Unit)和寄存器组R(Registers)等三个基本部分以及内部总线集成在一块半导体芯片上构成的电子器件。
(2)微型计算机:微型计算机(Microcomputer)是指以微处理器为核心,配上由大规模集成电路制作的存储器、输入/输出接口电路及系统总线等所组成的计算机,简称微机。
(3)微型计算机系统:微型计算机系统由硬件与软件两大部分组成,分别称为硬件(Hardware)系统与软件(Software)系统。
其中,硬件(Hardware)系统由CPU、内存储器、各类I/O接口、相应的I/O设备以及连接各部件的地址总线、数据总线、控制总线等组成。
软件(Software)系统:计算机软件(Software)是指为运行、维护、管理、应用计算机所编制的程序及程序运行所需要的数据文档资料的总和。
一般把软件划分为系统软件和应用软件。
其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。
而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。
2.简述名词的概念:指令寄存器、地址寄存器、标志寄存器。
答:(1)指令寄存器:指令寄存器(Instruction Register,IR)用来保存计算机当前正在执行或即将执行的指令。
当一条指令被执行时,首先,CPU从内存取出指令的操作码,并存入IR中,以便指令译码器进行译码分析。
(2)地址寄存器:地址寄存器(Address Register,AR)被动地接受IP传送给它的地址值(二进制地址),AR的作用是保持IP送来的地址,并且以并行方式连接输出到CPU的地址引脚上,以便CPU访问指定的内存单元。
微机原理和接口技术课后习题答案周明德
微机课后习题答案第一章:1.1 IA- 32结构微处理器直至Pentium4,有哪几种?8086. 80286.80386.80486.Pentium.Pentium MMX. Pentium Pro. Pentium Ⅱ. Pentium Ⅲ1.2 80386和8086在功能上有哪些区别?(1)从16位扩展为32位(2)从保护模式到实模式(3)片内存储管理单元1.3 80486和80386在功能上有哪些区别浮点支持1.4 Pentium相对于80486在功能上有什么扩展?(1)页从4KB扩展到4MB(2)内部寄存器仍是32位,但为了加快数据传送,内部数据总线是128和256位,外部数据总线是64位(3)增加了可编程中断控制器,以支持多个奔腾处理器系统(4)Pentium MMX引入了多媒体扩展指令集技术(MMX)1.5 Pentium Ⅱ以上的处理器采用了什么结构。
P6系列的超标量微结构。
1.6徽处理器、微型计算机和微型计算机系统三者之间有什么不同?微处理器:将cpu集成在一块集成电路芯片上。
微型计算机:由微处理器,存储器,输入输出接口电路和输入输出设备组成。
微型计算机系统:由微型计算机与运行、管理、维护计算机的软件组成。
1.7 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?组成:内部寄存器阵列,累加器和算术逻辑单元,指令寄存器,指令译码器和控制信号的产生电路。
功能:进行算术逻辑运算,控制计算机按照程序的规定运行。
1.8 微型计算机采用总线结构的优点。
增加了数据传送了灵活性,减少了芯片之间的连线,因而减少了连线所占的面积。
且总线可以标准化,有利于工业生产和兼容。
1.9数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?区别:数据总线是双向的,地址总线是单向的。
区分:地址总线和数据总线是分时复用的,它们主要靠信号的时序来区分,通常在读写数据时,先发送地址,然后再将数据送到数据总线上。
16/32位微机原理、汇编语言及接口技术第2版-第十一章-习题答案
P274第十一章部分习题参考答案11.1答:24条IO脚分成3个8位的端口:端口A、端口B、端口C。
都可编程设定为输入或输出,共有三种工作方式。
端口A和端口B可作为IO数据端口。
端口C作为控制或状态端口,C口高四位和低四位分别与A端口和B端口配合使用,工作在方式1或方式2。
端口C的8个引交可直接安位置位或复位。
11.2答:方式控制字为10110110B。
方式控制字另外两位确定C口的高4位和低4位中的空余位的I/O状态。
10.3答:端口C的各位在方式0时分高4位和低4位分别设定I/O状态;在方式1和方式2中部分引脚用于做控制或状态线,C口的高4位和低4位中的空余位的I/O状态仍分别可编程设定。
对端口C的各位可分别位控输出。
11.5 答:因为控制字为10110000B,则说明端口A工作在方式1输入,PC3、PC6、PC7被征用,而PC5仍为基本I/O线,这里为输出线。
11.8答:DATA SEGMENTAPORT EQU 0FFF8HBPORT EQU 0FFF9HCPORT EQU 0FFFAHCWPORT EQU 0FFFBHSEGBUF DB 11HBITBUF DB 01HSEGTAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB 80H,90H,88H,83H,0C6H,0A1H,86H,8EHDB 0FFH,0BFHDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,CWPORTMOV AL,10001001B ;设置A口B口为方式0输出,C口输入OUT DX,ALKEY1:CALL DISP ;调显示当前一位子程序MOV DX,CPORT ;读键盘口IN AL,DXCMP AL,0FFH ;判有无键按下JZ KEY1 无键按下,返回继续查MOV CX,8 ;有键按下,查找键值MOV AH,1KEY2: STCSHR AL,1JNC KEY_NUM ;查到键值,跳出去显示INC AHLOOP KEY2JMP KEY1KEY_NUM:CMP SEGBUF,AH ;判与前键相同否JZ KEY1 ;与前键相同,保持MOV SEGBUF,AH ;与前键不同,换新键值MOV BITBUF,01H ;重新指向左LED管JMP KEY1P_END: MOV AX,4C00HINT 21HDELAY_10MS PROC NEARPUSH AXPUSH CXPUSH DXMOV CX,0MOV DX,5000MOV AH,86HINT 15HPOP DXPOP CXPOP AXRETDELAY_10MS ENDPDISP PROCPUSH AXPUSH BXPUSH CXPUSH DXMOV BX,OFFSET SEGTABMOV AL,SEGBUFX LATMOV DX,APORTOUT DX,ALMOV AL,BITBUFMOV DX,BPORTOUT DX,ALROL AL,1MOV BITBUF,ALCALL DELAY_10MSPOP DXPOP CXPOP BXPOP AXRETDISP ENDPCODE ENDSEND START。
16、32位微机原理、汇编语言与接口技术教程课后复习题答案
16、32位微机原理、汇编语言与接口技术教程课后复习题答案《16/32位微机原理、汇编语言及接口技术教程》部分习题参考解答第1章微型计算机系统概述〔习题1.2〕什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统?〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器。
单片机:是指通常用于控制领域的微处理器芯片,其部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。
DSP芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,部集成有高速乘法器,能够进行快速乘法和加法运算。
嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。
〔习题1.5〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕CPU:CPU也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片集成了控制器、运算器和若干高速存储单元(即寄存器)。
处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。
I/O设备通过I/O接口与主机连接。
总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
〔习题1.6〕什么是总线?微机总线通常有哪3组信号?各组信号的作用是什么?〔解答〕总线:传递信息的共用通道,物理上是一组公用导线。
3组信号线:数据总线、地址总线和控制总线。
(1)地址总线:传输将要访问的主存单元或I/O端口的地址信息。
(2)数据总线:传输读写操作的数据信息。
(3)控制总线:协调系统中各部件的操作。
〔习题1.7〕简答如下概念:(1)计算机字长(2)取指-译码-执行周期(3)ROM-BIOS(4)中断(5)ISA总线〔解答〕(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《16/32位微机原理、汇编语言及接口技术教程》部分习题参考解答第1章微型计算机系统概述〔习题1.2〕什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统?〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器。
单片机:是指通常用于控制领域的微处理器芯片,其部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。
DSP芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,部集成有高速乘法器,能够进行快速乘法和加法运算。
嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。
〔习题1.5〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕CPU:CPU也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片集成了控制器、运算器和若干高速存储单元(即寄存器)。
处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。
I/O设备通过I/O接口与主机连接。
总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
〔习题1.6〕什么是总线?微机总线通常有哪3组信号?各组信号的作用是什么?〔解答〕总线:传递信息的共用通道,物理上是一组公用导线。
3组信号线:数据总线、地址总线和控制总线。
(1)地址总线:传输将要访问的主存单元或I/O端口的地址信息。
(2)数据总线:传输读写操作的数据信息。
(3)控制总线:协调系统中各部件的操作。
〔习题1.7〕简答如下概念:(1)计算机字长(2)取指-译码-执行周期(3)ROM-BIOS(4)中断(5)ISA总线〔解答〕(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。
(2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
(3)ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。
(4)中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。
(5)ISA总线是指IBM PC/AT机上使用的系统总线。
〔习题1.8〕下列十六进制数表示无符号整数,请转换为十进制形式的真值:(1)FFH (2)0H (3)5EH (4)EFH〔解答〕(1) 255(2) 0(3) 94(4) 239〔习题1.9〕将下列十进制数真值转换为压缩BCD码:(1)12 (2)24 (3)68 (4)99〔解答〕(1) 12H(2) 24H(3) 68H(4) 99H〔习题1.10〕将下列压缩BCD码转换为十进制数:(1)10010001 (2)10001001 (3)00110110 (4)10010000〔解答〕(1) 91(2) 89(3) 36(4) 90〔习题1.11〕将下列十进制数用8位二进制补码表示:(1)0 (2)127 (3)-127 (4)-57〔解答〕(1) 00000000(2) 01111111(3) 10000001(4) 11000111〔习题1.12〕数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码0DH 和0AH分别对应什么字符?〔解答〕数码0~9对应的ASCII码依次是30H~39H。
大写字母A~Z对应的ASCII码依次是:41H~5AH。
小写字母a~z对应的ASCII码依次是:61~7AH。
ASCII码0DH和0AH分别对应的是回车和换行字符。
第2章微处理器指令系统〔习题2.1〕微处理器部具有哪3个基本部分?8088分为哪两大功能部件?其各自的主要功能是什么?这种结构与8位CPU相比为什么能提高其性能?〔解答〕算术逻辑单元ALU、寄存器组和控制器;总线接口单元BIU:管理8088与系统总线的接口负责cpu对接口和外设进行访问执行单元EU:负责指令译码、执行和数据运算;8位cpu在指令译码前必须等待取指令操作的完成,8088中需要译码的指令已经取到了指令队列,不需要等待取指令。
而取指令是cpu最为频繁的操作,因此8088的结构和操作方式节省了大量等待时间,比8位cpu节省了时间,提高了性能。
〔习题2.2〕说明8088的8个8位和8个16位通用寄存器各是什么?〔解答〕8个8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL;8个16位寄存器:累加器AX、基址寄存器BX、计数器CX、数据寄存器DX、源地址寄存器SI、目的地址寄存器DI、基址指针BP、堆栈指针SP。
〔习题2.4〕举例说明CF和OF标志的差异。
〔解答〕例:有运算:3AH+7CH=B6H作为无符号数运算,没有进位,CF=0;作为有符号数运算,结果超出围,OF=1.〔习题2.5〕什么是8088中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?1MB最多能分成多少个逻辑段?请将如下逻辑地址用物理地址表达:⑴ FFFFH:0 ⑵ 40H:17H ⑶ 2000H:4500H ⑷ B821H:4567H〔解答〕物理地址:物理存储单元具有的一个唯一的20位编号逻辑地址:在8088部和用户编程时,所采用的“段地址:偏移地址”形式将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址1MB最多能分成1MB÷16B=220÷24=216个逻辑段,因为每隔16个字节单元就可以开始一个逻辑段⑴ FFFFH:0=FFFF0H⑵ 40H:17H=00417H⑶ 2000H:4500H=24500H⑷ B821H:4567H=BC777H〔习题2.8〕已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12H、34H、56H、78H,[21200H]~[21203H]依次存放2AH、4CH、B7H、65H,说明下列每条指令执行完后AX寄存器的容,以及源操作数的寻址方式?⑴ mov ax,1200h⑵ mov ax,bx⑶ mov ax,[1200h]⑷ mov ax,[bx]⑸ mov ax,[bx+1100h]⑹ mov ax,[bx+si]⑺ mov ax,[bx][si+1100h]〔解答〕⑴ mov ax,1200h ;AX=1200H,立即数寻址⑵ mov ax,bx ;AX=0100H,寄存器寻址⑶ mov ax,[1200h] ;AX=4C2AH,直接寻址⑷ mov ax,[bx] ;AX=3412H,寄存器间接寻址⑸ mov ax,[bx+1100h] ;AX=4C2AH,寄存器相对寻址⑹ mov ax,[bx+si] ;AX=7856H,基址变址寻址⑺ mov ax,[bx][si+1100h] ;AX=65B7H,相对基址变址寻址〔习题2.9〕说明下面各条指令的具体错误原因⑴ mov cx,dl ⑵ mov ip,ax⑶ mov es,1234h ⑷ mov es,ds⑸ mov al,300 ⑹ mov [sp],ax⑺ mov ax,bx+di ⑻ mov 20h,ah〔解答〕(1)cx为字寄存器,dl为字节寄存器,类型不匹配。
(2)mov指令的目的操作数只能是寄存器或者主存单元,ip是指针。
(3)不允许立即数到段寄存器的传送。
(4)不允许段寄存器之间的直接传送。
(5)数据溢出。
(6)sp不能用于寄存器间接寻址。
(7)格式不对。
应为:mov ax,[bx+di](8)mov指令的操作数不能是立即数。
〔习题2.10〕已知数字0~9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。
请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。
lea bx,tablemov al,8xlat〔解答〕lea bx,table ;获取table的首地址,BX=200Hmov al,8 ;传送欲转换的数字,AL=8xlat ;转换为格雷码,AL=12H〔习题2.11〕给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:mov al,89hadd al,aladd al,9dhcmp al,0bchsub al,aldec alinc al〔解答〕mov al,89h ;AL=89H CF ZF SF OF PFadd al,al ;AL=12H 1 0 0 1 1add al,9dh ;AL=0AFH 0 0 1 0 1cmp al,0bch ;AL=0AFH 1 0 1 0 1sub al,al ;AL=00H 0 1 0 0 1dec al ;AL=0FFH 0 0 1 0 1inc al ;AL=00H 0 1 0 0 1〔习题2.12〕请分别用一条汇编语言指令完成如下功能:⑴把BX寄存器和DX寄存器的容相加,结果存入DX寄存器。
⑵用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的容相加,并把结果送到AL中。
⑶用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的容相加,并把结果送回存储器中。
⑷用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。
⑸把数0A0H与AL寄存器的容相加,并把结果送回AL中〔解答〕⑴add dx,bx⑵ add al,[bx+si]⑶ add [bx+0b2h],cx⑷ add word ptr [0520h],3412h⑸ add al,0a0h〔习题2.13〕设有4个16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。
mov ax,Ximul Ymov cx,axmox bx,dxmov ax,Zcwdadd cx,axadc bx,dxsub cx,540sbb bx,0mov ax,Vcwdsub ax,cxsbb dx,bxidiv X〔解答〕(V-(X*Y+Z-540)/X〔习题2.14〕给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。
mov ax,1470hand ax,axor ax,axxor ax,axnot axtest ax,0f0f0h〔解答〕mov ax,1470h ;AX=1470H CF ZF SF OF PFand ax,ax ;AX=1470H 0 0 0 0 0or ax,ax ;AX=1470H 0 0 0 0 0xor ax,ax ;AX=0000H 0 1 0 0 1not ax ;AX=FFFFH 0 1 0 0 1test ax,0f0f0h ;AX=FFFFH 0 0 1 0 1〔习题2.15〕控制转移类指令中有哪三种寻址方式?〔解答〕相对寻址、直接寻址、间接寻址(还可以分成寄存器间接、存储器间接)〔习题2.16〕假设DS=2000H、BX=1256H、TABLE的偏移地址是20A1H,物理地址232F7H处存放3280H,试问执行下列段间接寻址的转移指令后,转移的有效地址是什么?⑴ JMP BX⑵ JMP TABLE[BX]〔解答〕(1)1256H(2)3280H〔习题2.17〕判断下列程序段跳转的条件⑴xor ax,1e1ehje equal⑵test al,10000001bjnz there⑶cmp cx,64hjb there〔解答〕⑴AX=1e1eh(异或后为0)⑵AL的D0或D7至少有一位为1⑶CX(无符号数)< 64h〔习题2.18〕如下是一段软件延时程序,请问NOP指令执行了多少次?xor cx,cxdelay: noploop delay〔解答〕216次〔习题2.20〕按照下列要求,编写相应的程序段:⑴由string指示起始地址的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给DX寄存器。