收藏 分销(赏)

微机原理编程题集合.doc

上传人:仙人****88 文档编号:12004710 上传时间:2025-08-26 格式:DOC 页数:11 大小:128.04KB 下载积分:10 金币
下载 相关 举报
微机原理编程题集合.doc_第1页
第1页 / 共11页
微机原理编程题集合.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
微机原理编程题 1. 分支程序设计 ①.编写一段程序,已知BUF1单元中有一带符号字节数据X,BUF2中有一带符号字节数据Y,根据以下函数关系编写程序求Z的值,结果存入RESULT 单元。Z=|X-Y|; DATA SEGMENT BUF1 DB 05H BUF2 DB 02H RESULT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,BUF1 MOV BL,BUF2 SUB AL,BL JNC GREAT NEG AL GREAT:MOV RESULT,AL EXIT: MOV AH,4CH INT 21H CODE ENDS END START ②.编写一段程序,已知BUF单元中有一无符号字节数据X,假设为8,根据以下函数关系编写程序求Y的值,结果存入RESULT 单元。Z=5X X<10,X-5 X>=10; DATA SEGMENT BUF DB 8 RESULT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,BUF CMP AL,10 JAE GRE MOV BL,AL ADD AL,AL ADD AL,AL ADD AL,BL JMP DONE GRE: SUB AL,5 DONE: MOV RESULT,AL MOV AH,4CH INT 21H CODE ENDS END START ③.在内存单元BUF中存放一个带符号字节数据X,假定为-2,试根据以下函数关系编写程序求Y的值,结果存入RESULT 单元。Y=1 X>0,0 X=0,-1 X<0; DATA SEGMENT BUF DB -2 RESULT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,BUF CMP AL,0 JGE L1 MOV AL,-1 JMP L3 L1:JZ L2 MOV AL,1 JMP L3 L2:MOV AL,0 L3:MOV RESULT,AL MOV AH,4CH INT 21H CODE ENDS END START 2. N个数中求最大值、最小值.假定N=10,已知原始数据存放在BUF开始的内存单元中,将结果存入MAX,MIN内存单元中。 DATA SEGMENT BUF DB 3,5,7,8,5,3,9,7,13,1 COUNT EQU $-BUF MAX DB ? MIN DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,COUNT-1 MOV AL,BUF MOV MAX,AL MOV MIN,AL LEA SI,BUF AGAIN: MOV AL,[SI+1] CMP AL,MIN JGE S1 MOV MIN,AL S1: CMP AL,MAX JLE S2 MOV MAX,AL S2: INC SI LOOP AGAIN MOV AH,4CH INT 21H CODE ENDS END START 3. 编写程序求1+2+3+……+N<100时最大的N值,将N值送NUM单元中,同时将1+2+3+……+N的和送到SUM单元中。 DATA SEGMENT NUM DB ? SUM DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,0 MOV BL,0 AGAIN:INC BL ADD AL,BL CMP AL,100 JB AGAIN SUB AL,BL DEC BL MOV NUM,BL MOV SUM,AL MOV AH,4CH INT 21H CODE ENDS END START 4. 统计字符,正数,负数,零的个数。 ①.若自STRING单元开始存放一个字符串,以'$'结尾,试编写程序, 统计字符串的长度,并将结果存入COUNT单元。 DATA SEGMENT STRING DB 'abcdefg$' COUNT DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,STRING MOV CX,0 NEXT: MOV AL,[SI] CMP AL,'$' JZ DONE INC CX INC SI JMP NEXT DONE: MOV COUNT,CX MOV AH,4CH INT 21H CODE ENDS END START ②.自BUF单元开始存放10个带符号字节数据,将其中的正数、负数和零选出来,并统计其个数,分别存入PLUS、MINUS和ZERO单元中。 DATA SEGMENT BUF DB 5,-2,0,-1,4,0,-4,8,0,-7 PLUS DB ? MINUS DB ? ZERO DB ? DATA ENDS CODE SEGMENT ASSUME CS:DATA,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,BUF MOV CX,10 AGAIN:MOV AL,[BX] INC BX AND AL,AL JS M1 JZ M2 INC PLUS JMP NEXT M1: INC MINUS JMP NEXT M2: INC ZERO JMP NEXT NEXT: LOOP AGAIN MOV AH,4CH INT 21H CODE ENDS END START 5. 求压缩BCD码的和。已知从BUF1和BUF2单元开始,存放两个各为10个字节的BCD数,求这两个数的和,并将结果存入BUF3单元中。 DATA SEGMENT BUF1 DB 01H,01H,01H,01H,01H,01H,01H,01H,01H,01H BUF2 DB 03H,03H,03H,03H,03H,03H,03H,03H,03H,03H BUF3 DB 11 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,10 LEA SI,BUF1 LEA DI,BUF2 LEA BX,BUF3 AGAIN: MOV AL,[SI] ADC AL,[DI] DAA MOV [BX],AL INC SI INC DI INC BX LOOP AGAIN ADC AH,0 MOV [BX],AH MOV AH,4CH INT 21H CODE ENDS END START 6. 8255编程题:(课后实验) 8255工作于方式0,此时PA、PB、PC均为可独立输入/输出的并行口。8255的各寄存器对应的口地址为:PA口:200H,PB口:202H,PC口:204H,控制口:206H。要求8255工作于方式0,PA口设置为输入,PC口设置为输出。 DATA SEGMENT C8255 EQU 206H P8255A EQU 200H P8255C EQU 204H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV DX,C8255 ;设置为A口输入,C口输出 MOV AL,90H OUT DX,AL BG: MOV DX,P8255A ;将A口状态从C口输出 IN AL,DX MOV DX,P8255C OUT DX,AL JMP BG CODE ENDS END START 7.编写一个汇编语言程序,要求从键盘输入一个小写字母,将其转换成大写字母在屏幕上显示出来。 DATA   SEGMENT           BUF  DB 0DH,0AH,"PLEASE INPUT A CHAR:$"  DATA ENDS  STACK  SEGMENT            DB 20 DUP(?)  STACK ENDS  CODE SEGMENT             ASSUME  DS:DATA,CS:CODE ,SS:STACK  BEGIN:  MOV AX,DATA           MOV DS,AX             LEA DX,BUF  ;9号调用显示PLEASE INPUT A CHAR:           MOV AH,9          INT 21H            MOV AH,1 1号调用,从键盘接收1字符           INT 21H  CMP  AL,61H  /41H   ;若比“a”/A小转PEND   JB  PEND                CMP  AL,7AH  /5BH  ;若比“z”/Z大转PEND           JA PEND  ;            ADD/SUB AL,20H  ;  如在“a”与“z”之间则减去20变为大写字符            MOV DL,AL              MOV AH,2   ;  2号功能调用显示一个字符            INT 21H  PEND:   MOV AH,4CH 程序结束运行,返回DOS           INT 21H  CODE    ENDS END  BEGIN 8.已知数据段中从偏移量DATA开始存放有10个带符号的字数据,编写程序,找出其中最大的数放入MAX中。  DA TA  SEGMENT     DATA DB 10 DUP(?)   MAX  DB ?  DA  ENDS  CODE  SEGMENT     ASSUME CS:CODE,DS:DA  START:MOV AX,DA          MOV DS,AX           MOV CX,9   LEA BX,DATA+1    MOV AL,DATA PP:   CMP AL,[BX]         JGE  NEXT         MOV AL,[BX]  NEXT: INC BX        LOOP PP          MOV MAX, AL         MOV AH,4CH      INT 21H  CODE  ENDS     END START  9.编写程序,不用乘法计算C=A/4-B×10,用移位运算。  DATA  SEGMENT    A DB ?   B DB ?    C DB ?  DATA  ENDS  CODE  SEGMENT    ASSUME CS:CODE,DS:DATA  START:MOV AX,DATA          MOV DS,AX    MOV CL,2          MOV BL,A  SAR BL,CL    MOV AL,B    MOV CL,3          SAL B,CL          SAL AL,1    ADD AL,B    SUB BL,AL    MOV C,BL    MOV AH,4CH    INT 21H  CODE  ENDS  END  START 1. 设M/IO、RD和WR在某时刻分别为1、1和0,指令中与其对应的是MOV  ES:[DI], AX    2. 执行返回指令,退出中断服务程序,这时返回地址来自堆栈区 。   3. 为了设定可编程I/O接口芯片的工作方式,必须通过_ 数据总线_传送命令信息。  4. 从硬件角度而言,采用硬件最少的数据传送方式为无条件传送 。  5. 当采用存储单元与I/O端口统一编址时,CPU的数据传送指令可以访问I/O端口和存储单元  。   6. 8253可编程定时/计数器工作在方式0时,控制信号GATE变为低电平后,对计数器的影响是暂时停止现行计数工作 。 9.  某系统中,欲用可编程并行接口芯片8255A的一个口来实现两位输入和两位输出,则应选用C口。 10.中断向量地址是中断服务程序入口地址的地址 。 11. 8088/8086的一切复位信号至少要维持____4__个时钟周期。  12. 8086/8088 CPU经加电复位后,执行第一条指令的地址是_____FFFF0H__。  13.  在最小模式下,执行“OUT DX, AL”指令时,M/IO, WR, RD, DT/R的状态分别是0, 0, 1, 1。  14.  假设某个总线周期需插入三个Tw等待状态,则该总线周期内对READY信号检测的次数是___4 。 15. 如果用8位地址线实现输入和输出口寻址,可寻址的输入、输 出口数最多为512。 16. 一般的中断过程分为中断请求、  中断判优,  、中断响应、中断处理、    中断返回 。 17. 8086/8088最多能处理__256___种中断。 1.二进制数10101001转换为10进制数为169D   ,转换为16进制数为    A9H    。  2.在LOOP循环控制指令中,用于指定循环次数的操作数的寄存器是        CX           。  3.设(CS)=4000H,(DS)=2000H,(SS)=2510H,(BX)=0100H,(BP)=0010H  (SI)=00A0H,,则指令MOV AX,[BX][SI]有效地址为     01A0H                ,物理地址为       201A0H              。  4.8086CPU外部有20根地址线,可寻址的内存空间  2^20            。  5.CPU和外设之间传送的三种信息是  数据信息    ,   状态信息  , 控制信息    。  6.可编程中断控制器8259A对程序员提供了      4    个初始化命令字和   3      个 操作命令字。   7.计算机系统中的三大总线通常指    数据总线    、 地址总线  、 控制总线     。  8.PC机的中断源可分为   内部中断 、   外部中断。  9.每一条指令一般都有       操作码      和   操作数          构成。  10.指令MOV AX,VAL[DI]中,源操作数的寻址方式        变址       方式。  11..设CF=0,AX=8000H,执行ROR AX,1后,AX=4000H,CF=0。  12.中断向量是中断服务程序入口地址。  13.设(CS)=25FFH,(DS)=2140H,(SS)=2510H,(BP)=02D0H,(SI)=0010H,(DI)=0206H,则指令MOV AX,[BP+SI+2]的源操作数有效地址为02E2H,物理地址为253E2H。  14.目前微型计算机的基本工作原理是存储程序控制的原理,其基本结构属于冯·诺依曼结构。  15.一个完整的中断过程应该包括:中断申请、中断响应、中断服务(处理)和中断返回四个阶段。  16.Intel 8086的中断向量表中存放的是中断向量。若在0000∶0008开始的4个字节中分 别是11H,22H,33H,44H,则对应的中断类型号为2的中断向量是14564H。  17.在中断方式下,当外设已经有数据要往CPU输入或者准备好接收数据时,接口会向CPU发一个中断请求信号;在DMA方式下,外设要求传输数据时,接口会向DMAC发DMA请求信号。  18.微机系统中数据传送的控制方式有三种:程序控制方式、DMA方式和I/O处理机方式。  19.Intel CPU工作在内存的实地址模式时,内存的物理地址由.段地址和偏移地址两部分组成。  20.CPU的标志寄存器中标志位,可以分为两大类,其中一类称为  条件   标志位,另一类称为   状态   标志位。  21.8086/8088内4个段寄存器DS,ES,CS,SS都是   16  位的,在用于内存寻址时作为段地址,20位物理地址是由段寄存器的段地址  左   移  4    位后,再与16位偏移量经过  相加   运算得到。  22.设 DA1 DW ‘AB’,’CD’,’EF’,’GH’,那么执行指令MOV AX,DA1+3后,AX里值为      FC    。  23.一般外设和存储器的编码方式有   统一编码      和     独立编码   。  24.一个完整的中断过程应该包括:____中断申请_____、___中断响应_____、中断服务和中断返回四个阶段。  25.Intel 8086的中断向量表能存放    256  个中断向量,每个中断向量为     4   字节。  26.在串行通信数据传送中,通常传送方式有____ 单工___、半双工和__全双工__三种。  27.微处理器芯片的时钟频率即 主频       ,它决定了CPU的处理速度。  28.堆栈主要用来存放暂时保存的数据,采用    先进后出         的方式。  29.一片EPROM如果有13根地址线和4根数据线,那么它的容量是   4KB          。  1.常用的I/O端口寻址方式有哪几种?各自的特点如何?  答:系统对I/O端口的地址分配有两种编址方式:统一编址和独立编址。独立编址方式,就是将存储器和I/O端口建立两个完全独立的地址空间;CPU使用专门的信号来区分是对存储器访问还是对I/O端口进行访问. 独立编址时,CPU对I/O端口的访问必须用专门的输入、输出指令(IN、OUT指令)来实现数据的传送,而输入/输出数据的通道则与存储器共享系统总线。   2.8259A的全嵌套方式和特殊全嵌套方式有什么差别?各自用在什么场合?  答:在特殊全嵌套方式下,当处理某一级中断时,如果有同级的中断请求,那么,也会给响应从而实现一种对同级中断请求的特殊嵌套。在全嵌套方式中,只有当更高级的中断请求来到时,才会进行嵌套,当同级中断请求来到时,会响应。特殊全嵌套方式一般用在8259A级连的系统中。   3. 什么叫总线?微机中的总线可分为哪几级?  答:总线(BUS)就是计算机各部件之间传送信息的公共通道。在微机中,有内部总线和外部总线两类:内部总线是指CPU内部之间的连接;外部总线是指CPU与其他部件之间的连接。日常所说的总线一般指的是外部总线,按其功能的不同,分为3种:数据总线(DB)、地址总线(AB)、控制总线(CB)。    4.简述为什么8253的方式0可作为中断的请求。  答:写入控制字后,OUT输出端变为低电平。当写入计数初值后,计数器开始减1计数。在计数过程中OUT一直保持为低电平,直到计数到0时,OUT输出变为高电平。此信号可用于向CPU发出中断请求。 5.8259A的全嵌套方式和特殊全嵌套方式有什么差别?各自用在什么场合?  答:在特殊全嵌套方式下,当处理某一级中断时,如果有同级的中断请求,那么,也会给响应从而实现一种对同级中断请求的特殊嵌套。在全嵌套方式中,只有当更高级的中断请求来到时,才会进行嵌套,当同级中断请求来到时,会响应。特殊全嵌套方式一般用在8259A级连的系统中。   6. DMA控制器的基本组成包括哪些部件?各自作用如何?  答:  DMA控制器在硬件结构上具有以下基本部件: 地址寄存器:其作用是接收CPU预置的存储器起始地址以及在传送过程中自动修改地址,以指出下一个要访问的存储单元。字节计数器:其作用是接收CPU预置的数据传送的总字节数以及在传送过程中控制传送过程何时结束,为此,该字节计数器应具有自动减1功能。控制寄存器:其作用是接收CPU的命令,以决定DMA传送方向,传送方式,如是输出(从内存到外设备)还是输入(从外设到内存);传送一个数据还是一批数据等。状态寄存器:用来反映DMA控制器及外设备的当前工作状态等。内部定时与控制逻辑。  7.8086系统中,当对SS和SP寄存器的值进行修改时,有什么特殊规定?这样做的原因是什么?  答: 凡是遇到给SS寄存器赋值的传送指令时,系统会自动禁止外部中断,等到本条指令和下条指令执行之后,又自动恢复对SS寄存器赋值前的中断开放情况。这样做是为了允许程序员连续用两条指令分别对SS和SP寄存器赋值,同时又防止堆栈空间变动过程中出现中断。  8.动态RAM为什么要进行刷新?刷新过程和读操作比较有什么差别?  答:1.因为动态RAM是利用电容的存储作用来保存信息的,但电容由于放电或泄漏,电荷保存时间较短(约2ms),若不及时补充电荷会使存放的数据丢失,因此需定时刷新以补充所需要的电荷。  2. 刷新过程是由刷新逻辑电路定时完成的,且每次对所有模块的一行同时刷新,数据不输出,数据总线处于高阻状态。读过程是随机的,每次选中一个存储单元(8位),且数据输出到数据总线上。  9.通常解决中断优先级的方法有哪几种?各有什么优缺点?  答:1.有软件查询方式、简单硬件方式——菊花链法、专用硬件方式三种。  2.软件查询方式的优点是节省硬件,缺点是中断响应时间长;简单硬件方式的优点是中断响应时间短,硬件较简单,缺点是优先级固定,变动起来很麻烦;专用硬件方式优点是对优先级可编程修改,中断管理非常方便,缺点是硬件复杂的多,好在有专用的中断控制器。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服