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 ;中断返回。
16。32位微机原理第3章课后习题答案

>第3章3.1:汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2 解:(1)完整的汇编语言源程序由段组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内(5)通常,程序还需要一个堆栈段3.3 解:存储模式特点TINY COM类型程序,只有一个小于64KB的逻辑段(MASM 6.x支持)SMALL小应用程序,只有一个代码段和一个数据段(含堆栈段),每段不大于64KB COMPACT代码少、数据多的程序,只有一个代码段,但有多个数据段MEDIUM代码多、数据少的程序,可有多个代码段,只有一个数据段LARGE大应用程序,可有多个代码段和多个数据段(静态数据小于64KB)HUGE更大应用程序,可有多个代码段和多个数据段(对静态数据没有限制)FLAT32位应用程序,运行在32位80x86CPU和Windows 9x或NT环境3.4解:开始位置:用标号指明返回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位微机原理、汇编语言及接口技术__钱晓捷_第2版_课后习题答案

第一章1.1解:五代,详细见书1.2解:微型计算机:以大规模、超大规模集成电路为主要部件,以集成了计算机主要部件——控制器和运算器的微处理器为核心,所构造出的计算机系统。
PC机:PC(Personal Computer)机就是面向个人单独使用的一类微机。
单片机:用于控制的微处理器芯片,内部除CPU外还集成了计算机的其他一些主要部件,如:ROM、RAM、定时器、并行接口、串行接口,有的芯片还集成了A/D、D/A转换电路等。
数字信号处理器DSP:主要面向大流量数字信号的实时处理,在宿主系统中充当数据处理中心,在网络通信、多媒体应用等领域正得到越来越多的应用1.3解:微机主要有存储器、I/O设备和I/O接口、CPU、系统总线、操作系统和应用软件组成,各部分功能如下:CPU:统一协调和控制系统中的各个部件系统总线:传送信息存储器:存放程序和数据I/O设备:实现微机的输入输出功能I/O接口:I/O设备与CPU的桥梁操作系统:管理系统所有的软硬件资源1.4解:系统总线:传递信息的一组公用导线,CPU通过它们与存储器和I/O设备进行信息交换。
好处:组态灵活、扩展方便三组信号线:数据总线、地址总线和控制总线。
其使用特点是:在某一时刻,只能由一个总线主控设备来控制系统总线,只能有一个发送者向总线发送信号;但可以有多个设备从总线上同时获得信号。
1.5解:(1)用于数值计算、数据处理及信息管理方向。
采用通用微机,要求有较快的工作速度、较高的运算精度、较大的内存容量和较完备的输入输出设备,为用户提供方便友好的操作界面和简便快捷的维护、扩充手段。
(2)用于过程控制及嵌人应用方向。
采用控制类微机,要求能抵抗各种干扰、适应现场的恶劣环境、确保长时间稳定地工作,要求其实时性要好、强调其体积要小、便携式应用强调其省电。
1.6解:1.7解:I/O通道:位于CPU和设备控制器之间,其目的是承担一些原来由CPU处理的I/O任务,从而把CPU从繁杂的I/O任务中解脱出来。
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位十进制数。
微机原理汇编语言与接口技术课后答案

微机原理汇编语言与接口技术课后答案微机原理汇编语言与接口技术课后答案【篇一:《微机原理、汇编语言与接口技术》复习练习题与答案(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、从地址/数据复用线中分离出地址信息需用逻辑芯片,地址/数据复用线中的双向数据传送需用逻辑芯片双向缓冲器。
16 32位微机原理汇编语言及接口技术第十一章课后习题答案

16 32位微机原理汇编语言及接口技术第十一章课后习题答案1632位微机原理、汇编语言及接口技术第十一章课后习题答案习题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的初始化movdx,0fffeh;掌控端口地址:fffehmoval,10000001b;方式掌控字:10000001=81houtdx,al;b端口方式0输入,c端口上方式0输入、下方式0输出,;端口任一(方式0,出来)moval,00001111b;端口c的为丛藓科扭口藓边线位掌控字,并使pc7=1outdx,al;并使pc7=1,即为复置strobe*=1(只有输入数据时才为高脉冲);输入列印数据子程序,入口参数ah=列印数据;查阅printcprocpushaxpushdxprn:movdx,0fffch;加载端口cinal,dx;查阅打印机状态andal,04h;00000100,pc2=busy=0?jnzprn;pc2=1,打印机忙碌,则循环等候;列印子程序:输入printcmovdx,0fffahmoval,ahoutdx,al;打印子程序:打印movdx,0fffehmoval,00001110boutdx,alnopnopmoval,00001111boutdx,al;列印子程序:回到popdxpopaxretendp;pc2=0,打印机不忙,则输出数据;将打印数据从端口b输出;从pc7送出控制低脉冲;置strobe*=0;产生一定宽度的低电平;复置pc7=1,即strobe*=1;最终,strobe*产生低脉冲信号习题11.7方式1输出下:端口a的ack*即pc6,obf*即pc7,intr即pc3对应端口b的ack*即pc2,obf*即pc1,intr即pc0数据端口转换为pbmovdx,0fffehmoval,84houtdx,almoval,04h;使inteb(pc2)为0,禁止中断outdx,al……movcx,counter;列印字节数送来cxmovbx,offsetbuffer;挑字符串首地址callprints;调用列印子程序printsprocpushax;维护寄存器pushdxprint1:moval,[bx];取一个数据movdx,0fffahoutdx,al;从端口b输出movdx,0fffchprint2:inal,dxtestal,02h;检测(pc1)为1否?jzprint2incbxloopprint1popdxpopaxretprintsendp习题11.8l0~l3对应pc4~pc7,l亮否可以通过给pc4~pc7置位复位实现,即c端口的高部分为输出;根据k0~k3(pc0~pc3),确认l0~l3(对应pc4~pc7)亮否,所以c端的高部分为输出;又c端的8位都被正常采用,所以a端口和b端口均为方式就是0;载入方式字moval,100×00×1b;=81hmovdx,掌控口地址;0fffehoutdx,al;重新加入下一段更好,并使l0~l3全亮moval,0fhmovdx,端口c地址;0fffchoutdx,al;pc4~pc7为低,经逆向驱动为0,与阳极间构成通路,led暗;控制程序段movdx,端口c地址;0fffchinal,dx;初始化pc0~pc3movcl,4shlal,cl;左移4十一位,pc0~pc3→pc4~pc7outdx,al;掌控pc4~pc7。
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 区。
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)控制总线:协调系统中各部件的操作。
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中(不考虑溢出和进位)。
16 32位微机原理第3章课后习题答案

16 32位微机原理第3章课后习题答案1632位微机原理第3章课后习题答案>第3章3.1:汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2解决方案:(1)完整的汇编语言源程序由段组成(2)汇编语言源程序可以包含多个代码段、数据段、附加段或堆栈段,段之间的顺序可以随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有可执行语句必须在一个代码段中,描述性语句可以根据需要在任何段中开始位置:用标号指明返回DOS:使用DOS函数调用的4CH子函数停止汇编:执行end伪指令时停止汇编3.5解:段定位、段组合和段类型。
3.6给出采用一个源程序格式书写的例题3.1源程序示例3.1:创建一个在屏幕上显示信息的程序??解决方案:stacksegmentstackdb1024(0)个stackends41hdatasegmentstringdb'hello,assembly!',0dh,0ah,“$”数据结束codesegment'code'假设:代码,ds:data,ss:stackstart:movdx,offsetstringmovah,9int21hcodeendsendstart3.7 DOS支持的两种可执行程序结构是什么?在编写这两个程序时,我们应该注意什么?解决方案:(1).exe程序只有一个逻辑段,程序长度不超过64KB3.8举例说明等价“euq”伪指令和等号“=”伪指令的用途解:符号定义的伪指令有“equal equ”和“equal sign=”:symbol name equ数值表达式symbol name equ symbol name=数值表达式equ用于数值等价时不能重复定义符号名,但“=”允许有重复赋值。
1632位微机原理汇编语言及接口技术教程课后习题答案

or ax,ax
xor ax,ax
not ax
test ax,0f0f0h
〔解答〕
mov ax,1470h;AX=1470HCFZFSFOFPF
and ax,ax;AX=1470H00000
or ax,ax;AX=1470H00000
xor ax,ax;AX=0000H01001
not ax;AX=FFFFH01001
执行单元EU:负责指令译码、执行和数据运算;
8位cpu在指令译码前必须等待取指令操作的完成,8088中需要译码的指令已经取到了指令队列,不需要等待取指令。而取指令是cpu最为频繁的操作,因此8088的结构和操作方式节省了大量等待时间,比8位cpu节省了时间,提高了性能。
〔习题2.2〕
说明8088的8个8位和8个16位通用寄存器各是什么?
(2)数据总线:传输读写操作的数据信息。
(3)控制总线:协调系统中各部件的操作。
〔习题1.7〕
简答如下概念:
(1)计算机字长
(2)取指-译码-执行周期
(3)ROM-BIOS
(4)中断
(5)ISA总线
〔解答〕
(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。
(2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
⑵有两个32位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写程序段完成DX.AX←buffer1-buffer2功能。
⑶编写一个程序段,在DX高4位全为0时,使AX=0;否则使AX=-1。
〔解答〕
CPU:CPU也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
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位微机原理第3章课后习题答案

16 32位微机原理第3章课后习题答案1632位微机原理第3章课后习题答案>第3章3.1:汇编语言就是一种以处理器指令系统为基础的低级程序设计语言,它使用助记符抒发指令操作码,使用标识符号则表示指令操作数,可以轻易、有效地掌控计算机硬件,因而难建立代码序列短小、运转快速的可执行程序3.2解:(1)完备的汇编语言源程序由段共同组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)须要单一制运转的程序必须涵盖一个代码段,并命令程序执行的初始点,一个程序只有一个初始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内已经开始边线:用标号阐明返回dos:利用dos功能调用的4ch子功能来实现汇编停止:执行到一条end伪指令时,停止汇编3.5求解:段定位、段组合和段类型。
3.6得出使用一个源程序格式书写的例题3.1源程序例题3.1:创建一个在屏幕上显示一段信息的程序??解:stacksegmentstackdb1024(0)stackends41hdatasegmentstringdb'hello,assembly!',0dh,0ah,‘$’dataendscodesegment'code'assumecs:code,ds:data,ss:stackstart:movdx,offsetstringmovah,9int21hcodeendsendstart3.7dos支持哪两种可执行程序结构,编写这两种程序时需要注意什么?解:(1).exe程序只有一个逻辑段,程序长度不超过64kb3.8举例说明等价“euq”伪指令和等号“=”伪指令的用途求解:符号定义伪指令有“等价equ”和“等号=”:符号名equ数值表达式符号名equ符号名=数值表达式equ用作数值等价时无法重复定义符号名,但“=”容许存有重复赋值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(7)al=0,cf=0,zf=1,sf=0,of=0,pf=1 2.12 (1) add dx,bx (2) add al,[bx+si] (3) add word ptr[bx+0B2H],cx (4) add word ptr[0520H],3412H (5)add al,0A0H 2.13 运算公式: (V Z X * Y 540) / X 。商存储在 ax,余数存储在 dx。 2.14 (1)ax=1470H (2)ax=1470H,cf=0,of=0,sf=0,zf=0,pf=0 (3)ax=1470H,cf=0,of=0,sf=0,zf=0,pf=0 (4)ax=0,cf=0,of=0,sf=0,zf=1,pf=1 (5)ax=0FFFFH,cf=0,of=0,sf=0,zf=1,pf=1 (6)ax=0FFFFH,cf=0,of=0,sf=1,zf=0,pf=1 2.15 相对寻址方式、直接寻址方式、间接寻址方式。 2.16 (1)1256H (2)3280H 2.17 (1)ax=1E1EH (2)al 的 D0、D7 位不全为 0 (3)cx<64H 2.18 执行 65536 次。 2.19 功能:将数组中每个字元素相加,结果存储于 total。 2.20 (1)lea si,string Mov dh,[si] Mov dl,[si+5] (2)mov ax word ptr buffer1 Sub ax word ptr buffer2 Mov dx word ptr buffer1+2 Sbb dx word ptr buffer2+2
1
1.7 解: I/O 通道:位于 CPU 和设备控制器之间,其目的是承担一些原来由 CPU 处理的 I/O 任 务,从而把 CPU 从繁杂的 I/O 任务中解脱出来。由 10 根信号线组成(A9-A0)。 1.8 解: BIOS:基本输入输出系统。 主要功能:用来驱动和管理诸如键盘、显示器、打印机、磁盘、时钟、串行通信接 口等基本的输入输出设备 1.9 解: 基本 RAM 区:640KB 保留 RAM 区:128KB 扩展 ROM 区:128KB 基本 ROM 区:128KB 1.10 解: (1)、数—用来直接表征量的大小,包括:定点数、浮点数。 (2)、码—用来指代某个事物或事物的某种状态属性,包括:二进制、八进制、十 进制、十六进制。 区别:使用场合不同,详见 P16. 1.11 解: (1)
1.14 解: 无符号数:70D 补码有符号数:70D BCD 码:46D ASCII:F 1.15 解: 1)、相加后若出现和大于 9,则将和减去 10 后再向高位进 1 2)、若出现组间进位,则将低位加 6 1.16 解: 详见课本 16 页。 1.17 解: C3 40 20 00 1.18 解: 50 十进制值 50 二进制 十六进制 50H 80 二进制 十六进制
1.12 解: +37 -37 原码 00100101/25H 10100101/A5H 反码 00100101/25H 11011010/DAH 补码 00100101/25H 11011011/DBH
1.13 解: +37 16 位 00 25H 32 位 00 00 00 25H 16 位 FF 5BH -37 32 位 FF FF FF 5BH
4
2.6 代码段:存放程序的指令序列; 堆栈段:确定堆栈所在的主存储区; 数据段:存放当前运行程序的数据; 附加段:附加数据段,用于数据保存。另外串操作指令将其作为目的操作数的存放区。 2.7 8088 的存储空间分段管理,程序设计时采用逻辑地址。由于段地址在默认的或指定的段 寄存器中,所以只需要偏移地址,称为有效地址 EA. 操作数在主存中有以下几种寻址方式:直接寻址、寄存器间接寻址、寄存器相对寻址、基 址变址寻址、相对基址变址寻址。 2.8 (1)立即数寻址 ax:1200H (2)寄存器寻址 ax:0100H (3)存储器直接寻址 ax:4C2AH (4)寄存器间接寻址 ax:3412H (5)寄存器间接寻址 ax:4C2AH (6)基址变址寻址 ax:7856H (7)相对基址变址寻址 ax:65B7H 2.9 (1)cx 为字寄存器,dl 为字节寄存器,类型不匹配。 (2)mov 指令的目的操作数只能是寄存器或者主存单元,ip 是指针。 (3)不允许立即数到段寄存器的传送。 (4)不允许段寄存器之间的直接传送。 (5)数据溢出。 (6)sp 不能用于寄存器间接寻址。 (7)格式不对。应为:mov ax,[bx+di] (8)mov 指令的操作数不能是立即数。 2.10 (1)bx 得到 table 的偏移地址,bx=200H. (2)将立即数 8 送到 al。 (3)换码,al=12H. 2.11 (1)al=89H (2)al=12H,cf=1,zf=0,sf=0,of=1,pf=1 (3)al=0AFH,cf=0,zf=0,sf=1,of=0,pf=1 (4)al=0AFH,cf=1,zf=0,sf=1,of=1,pf=1 (5)al=0,cf=0,zf=1,sf=0,of=0,pf=1 (6)al=0FFH,cf=0,zf=0,sf=1,of=0,pf=1
2
(174.66)10 (10101110.10101) 2 (174.66)10 ( AE. A8)16
(2)
(100011101011.01011) 2 (2283.34375) 10 (100011101011.01011) 2 (8 EB.58) 16
(3)
(F18A6.6)16 (11110001100010100110.0110) 2 (F18A6.6)16 (989350.375)10
7
Htoasc 2.24 Numout
Mov ah,02H Mov dl,al Int 21H Ret endp proc Xor ah,ah Aam Add ax,3030H Mov dl,ah Mov ah,02H Int 21H Mov dl,al Mov ah,02H Int 31H Ret endp db”input number 0-9”,”$” db”error”,”$” Mov ah,09H Mov dx,offset msgkey Int 21H mov ah,01H Int 21H Cmp al,30H Jb disp Cmp al,39H Ja disp Mov dl,al Mov ah,02H Int 21H Jmp done mov dx,offset msgwrg Mov ah,09H Int 21H Jmp again
第一章 1.1 解: 五代,详细见书 1.2 解: 微型计算机:以大规模、超大规模集成电路为主要部件,以集成了计算机主要部件 ——控制器和运算器的微处理器为核心,所构造出的计算机系统 。 PC 机:PC(Personal Computer)机就是面向个人单独使用的一类微机 。 单片机:用于控制的微处理器芯片,内部除 CPU 外还集成了计算机的其他一些主要 部件,如:ROM、RAM、定时器、并行接口、串行接口,有的芯片还集成了 A/D、D/A 转换 电路等。 数字信号处理器 DSP: 主要面向大流量数字信号的实时处理,在宿主系统中充当数据 处理中心,在网络通信、多媒体应用等领域正得到越来越多的应用 1.3 解: 微机主要有存储器、I/O 设备和 I/O 接口、CPU、系统总线、操作系统和应用软件组 成,各部分功能如下: CPU:统一协调和控制系统中的各个部件 系统总线:传送信息 存储器:存放程序和数据 I/O 设备:实现微机的输入输出功能 I/O 接口:I/O 设备与 CPU 的桥梁 操作系统:管理系统所有的软硬件资源 1.4 解: 系统总线: 传递信息的一组公用导线,CPU 通过它们与存储器和 I/O 设备进行信息交 换 。 好处:组态灵活、扩展方便 三组信号线:数据总线、地址总线和控制总线 。 其使用特点是:在某一时刻,只能由一个总线主控设备来控制系统总线,只能有一 个发送者向总线发送信号;但可以有多个设备从总线上同时获得信号。 1.5 解: (1)用于数值计算、数据处理及信息管理方向。采用通用微机,要求有较快的工作 速度、较高的运算精度、较大的内存容量和较完备的输入输出设备,为用户提供方便友 好的操作界面和简便快捷的维护、扩充手段。 (2)用于过程控制及嵌人应用方向。 采用控制类微机,要求能抵抗各种干扰、适应现场的恶劣环境、确保长时间稳定地工作, 要求其实时性要好、强调其体积要小、便携式应用强调其省电。 1.6 解:
8
ห้องสมุดไป่ตู้
Numout 2.25 Msgkey Msgwrg
Again:
Disp:
Done:
mov ah,02H Mov dl,al Int 21H
第四章 4.1 20; A19 A0 ;65536; A0 A9 ;扩展板 4.4 总线操作周期中,8088 在第三个时钟周期的前沿测试 READY 引脚,若无效,表明被访问 的设备与 CPU 操作不同步,CPU 插入等待周期。 4.5 最小组态模式用于小规模系统, MN/MX* 接高电平,分时复用引脚是: AD7 AD0 ,
3
0011 0010B 1.19 解:
32H
0101 0000B
50H
D:44H d:64H CR:0DH LF:0AH 0:30H SP:20H NUL:00H 1.20 解: 国标码:36 50H 机内码:B6 B0H 第二章 2.1 算术逻辑单元 ALU、寄存器组和控制器; 总线接口单元 BIU:管理 8088 与系统总线的接口负责 cpu 对接口和外设进行访问 执行单元 EU:负责指令译码、执行和数据运算; 8 位 cpu 在指令译码前必须等待取指令操作的完成, 8088 中需要译码的指令已经取到了指 令队列,不需要等待取指令。而取指令是 cpu 最为频繁的操作,因此 8088 的结构和操作 方式节省了大量等待时间,比 8 位 cpu 节省了时间,提高了性能。 2.2 8 个 8 位寄存器:AH、AL、BH、BL、CH、CL、DH、DL; 8 个 16 位寄存器:累加器 AX、基址寄存器 BX、计数器 CX、数据寄存器 DX、源地址寄存 器 SI、目的地址寄存器 DI、基址指针 BP、堆栈指针 SP。 2.3 标志用于反映指令执行结果或者控制指令执行形式。 状态标志用于记录程序运行结果的状态信息;控制标志用于控制指令执行的形式。 2.4 例:有运算:3AH+7CH=B6H 作为无符号数运算,没有进位,CF=0; 作为有符号数运算,结果超出范围,OF=1. 2.5 8088 中每个存储单元有唯一的 20 位地址,称为物理地址。处理器通过总线存取存储器数 据时,采用这个物理地址。 在用户编程过程中采用的“段地址:偏移地址”的形式称为逻辑地址。 将逻辑地址中的段地址左移 4 位,加上偏移地址就得到物理地址。 1MB 最多能分成 65536 个逻辑段。