西北大学微机原理程序题
- 格式:docx
- 大小:91.95 KB
- 文档页数:4
1.阅读程序回答问题或补充程序。
1、程序如下V AL DB 2,3,4,5,6,7MOV BX,OFFSET V ALMOV AL,64HPUSH AXAND AL,0FHXLATMOV DL,ALPOP AX执行上面程序段后,(DL)=(06h ),(AL)=(064h)。
2、程序如下MOV DX,1306HMOV AH,0B3HMOV CL,4SHL DX,CLMOV BL,AHSHL BL,CLSHR BL,CLOR DL,BL执行上面程序段后,(BL)=(03h),(DL)=(063h )。
3、程序如下MOV AX,1200HMOV CL,4ROL AX,CLDEC AXMOV CX,4MUL CX程序运行结束时,(AX)=(8000h ),(DX)=(0h )4、程序如下MOV AX,0180HMOV BX,0080HADD AH, BHADD AL, BLADC AH, BH程序运行结束时,(AL)=(00h ),(AH)=(02h )5、填空使程序完成以下功能:将数据段中首地址为String1的串(8个字节数据)传送到附加段中首地址为String2的8个存储单元。
其中DATA与EXTRA分别为数据段与附加段的段名字。
MOV AX, DATAMOV DS, AXMOV AX,EXTRAMOV ES, AXMOV SI, OFFSET String1MOV DI, OFFSET String2(MOV CX, 9 )CLD(REP MOVSB )HLT2.简答1、8086的ALE引脚为什么引脚?在总线周期的不同时钟周期为什么电平状态?分别表示地址/数据分时复用总线传送的是什么信息?答: 8086/8088的ALE引脚为地址锁存允许信息传送引脚。
在总线周期的T1状态为高电平,T2、T3、T4状态为低电平。
高电平表示地址/数据分时复用总线传送的是地址信息,低电平表示传送的是数据信息。
2、8086的引脚中,与中断处理有关的引脚有那些?分别有什么功能?答:8086的引脚中,与中断处理有关的引脚包括INTR、INTA与NMI引脚其中INTR、INTA与可屏蔽中断请求有关;INTR引脚用于输入可屏蔽中断请求,INTA引脚用于输出中断相应信号。
微机原理试题及答案一、选择题。
1. 下列哪个不是微机系统的基本组成部分?A. 中央处理器。
B. 存储器。
C. 输入设备。
D. 输出设备。
答案,C。
2. 下列哪个不属于微处理器的功能?A. 运算。
B. 控制。
C. 存储。
D. 输入。
答案,D。
3. 以下哪个不是微机系统软件的组成部分?A. 操作系统。
B. 应用软件。
C. 数据库软件。
D. 固件。
答案,C。
4. 下列哪个不是微机系统的外部设备?A. 打印机。
B. 鼠标。
C. 显示器。
D. 内存条。
答案,D。
5. 下列哪个不是微机系统的存储器?A. 内存。
B. 硬盘。
C. CPU。
D. 光盘。
答案,C。
二、填空题。
1. 微机系统的核心部件是______。
答案,中央处理器。
2. 微机系统的内存是用来存储______。
答案,程序和数据。
3. 微机系统的主要输入设备有键盘、______。
答案,鼠标。
4. 微机系统的操作系统是用来管理______。
答案,硬件和软件资源。
5. 微机系统的显示器是用来输出______。
答案,图像和文字。
三、简答题。
1. 什么是微机系统?简要描述其基本组成部分。
答,微机系统是由中央处理器、存储器、输入设备、输出设备和系统总线等基本组成部分组成的计算机系统。
2. 请简要介绍微处理器的功能及其作用。
答,微处理器是微机系统的核心部件,其主要功能包括运算、控制和存储,它负责执行计算机程序中的指令,是计算机的大脑。
3. 请简要介绍微机系统的软件组成部分。
答,微机系统的软件包括操作系统、应用软件和固件,其中操作系统是管理硬件和软件资源的系统软件,应用软件是为用户提供各种功能的软件,固件是存储在计算机芯片中的软件。
四、问答题。
1. 请简要描述微机系统的工作原理。
答,微机系统的工作原理是通过中央处理器执行指令,从存储器中读取程序和数据,经过运算和控制后,将结果输出到显示器或打印机等输出设备上。
2. 请简要介绍微机系统的存储器种类及其特点。
答,微机系统的存储器包括内存、硬盘、光盘等,其中内存用于临时存储程序和数据,速度快但容量小;硬盘用于永久存储数据,容量大但速度较慢;光盘用于存储大量数据,但读写速度较慢。
4.37 (上机题)编写程序实现,将缓冲区BUFFER中的100个字按递增排序,并按下列格式顺序显示:数据1 <原序号>数据2 <原序号>……算法流程图:调试问题、心得体会:通过这道题,熟悉了流程图画法,掌握了产生随机数,“冒泡法”排序,子函数编写调用等的基本过程,尤其对于中断调用,并利用ASCII码回显和对课本字节型数据“冒泡法”排序改进为字形排序的过程,是我受益匪浅。
并且亲身实践了源程序的汇编、调试也连接。
问题:将字节型冒泡法直接应用于该题,导致出错,该题存储的是字型数据!原因在于只是排列的AL中的数值,并不是产生的随机数!同时对于字型与字节型在运算类指令中的应用还是有误,以及其他的一些小错误,应加以改善!运行结果:程序代码:STACK SEGMENT STACK 'STACK'DW 100H DUP(?)TOP LABEL WORDSTACK ENDSDATA SEGMENTBUFFER LABEL WORDX=17REPT 100X=(X+80)mod 43DW XENDMBUF DW 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA SP,TOPMOV CX,100LEA SI,BUFFERLEA DI,BUFL1:MOV AX,[SI]INC SIINC SIMOV [DI],AXINC DIINC DILOOP L1MOV CX,100DEC CXLEA SI,BUFFERPUSH CXADD CX,CXADD SI,CXPOP CXL2:PUSH CXPUSH SIL3:MOV AX,[SI]CMP AX,[SI-2]JAE NOXCHGXCHG AX,[SI-2]MOV [SI],AXNOXCHG:LOOP L3POP SIPOP CXLOOP L2MOV CX,100LEA SI,BUFFER L4:MOV AX,[SI] CALL DISPAX ADD SI,2CALL XIAOYU CALL XUHAOCALL DAYUCALL DISPCR LOOP L4MOV AH,4CHMOV AL,0INT 21H DISPAX PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH DIMOV BX,10MOV CX,3L7:XOR DX,DXDIV BXMOV [DI],DX INC DIINC DILOOP L7MOV CX,3L8:DEC DIDEC DIMOV AL,[DI] ADD AL,30HMOV AH,02MOV DL,ALINT 21HLOOP L8POP DXPOP CXPOP BXPOP AXRET DISPAX ENDP DISPCR PROC NEAR PUSH AXPUSH DXMOV AH,2MOV DL,0AH INT 21HMOV AH,2MOV DL,0DH INT 21HPOP DXPOP AXRET DISPCR ENDP XIAOYU PROC NEAR PUSH AXPUSH DXMOV AH,02 MOV DL,3CH INT 21HPOP DXPOP AXRET XIAOYU ENDP XUHAO PROC NEAR PUSH AXPUSH BXPUSH CXPUSH SIMOV CX,100 MOV BX,AX LEA SI,BUF L5:CMP BX,[SI] JZ L6ADD SI,2LOOP L5L6:MOV AX,101SUB AX,CXCALL DISPAXPOP SIPOP CXPOP BXPOP AXRETXUHAO ENDPDAYU PROC NEARPUSH AXPUSH DXMOV AH,02MOV DL,3EHINT 21HPOP DXPOP AXRETDAYU ENDPCODE ENDSEND START4.38 (上机题)按同余法产生一组随机数N(1<N<=50),并按N+50赋给45名同学的5门课程的成绩,要求编程实现计算每个同学的平均成绩,并根据平均成绩统计全班的成绩各等级的人数(A:90~100,B:80~89,C:70~79,D:66~69,E:60~65,F:60分以下),按下列格式显示:Total <总人数>A: <人数1>B: <人数2>C: <人数3>D: <人数4>E: <人数5>F: <人数6>算法流程图:调试问题、心得体会:通过该问题,进一步练习了通过流程图分析设计程序的功能,掌握了随机数产生,子函数调用,分支程序,循环程序,中断调用等过程,进行了调试,找出了数值无法转化为十进制并显示的问题,原因在于未定义临时存储单元。
SUM DD ?DATA ENDS ;数据段CODE SEGMENT ;代码段ASSUMECS:CODE,DS:DATA,SS:STAC KSTART: MOVAX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SP,TOPLEA SI,ADD1LEA DI,ADD2MOV AL,[SI]ADD AL,[DI]DAAMOV BYTE PTR SUM,ALMOV AL,[SI+1]ADC AL,[DI+1]DAAMOV BYTE PTR SUM+1,ALMOV AL,[SI+2]ADC AL,[DI+2]DAAMOV BYTE PTR SUM+2,ALMOV AL,[SI+3]ADC AL,[DI+3]DAAMOV BYTE PTR SUM+3,ALMOVAX,WORD PTR SUM+2CALL DISPAXMOV AX,WORD PTR SUMCALL DISPAXMOV AH,4CHINT 21H DISPAL PROC NEAR PUSH AXPUSH CXPUSH DXPUSH AXMOV CL,4SHR AL,CLCALL CHANGMOV AH,02MOV DL,ALINT 21HPOP AXAND AL,0FHCALL CHANGMOV AH,02MOV DL,ALINT 21HPOP DXPOP CXPOP AXRETDISPAL ENDPCHANG PROC NEARCMP AL,10JNGE CHANG1ADD AL,7CHANG1: ADDAL,30HRETCHANG ENDPDISPAX PROC NEARXCHG AL,AHCALL DISPALXCHG AH,ALCALL DISPALRETDISPAX ENDPCODE ENDSEND START2. 有一个首地址为A的N字数组,请编程序使该数组中的数按从大到小的次序排列。
STACK SEGMENT STACKDB 256 DUP(?)STACK ENDSDATA SEGMENTDATA1 DW7800H,6832H,0000H,87H,1275 H,0EC34HSTRING1 DB 'input number:',0DH,0AH,'$'STRING2 DB 'The numbersfrom large to smallis:',0DH,0AH,'$'DATA ENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,ES:DATA, SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA DX,STRING1MOV AH,09HINT 21HMOV CX,6 LEA SI,DATA1 L1: MOV AX,[SI] ADD SI,2CALL DISPAX CALL DISPCR LOOP L1MOV CX,5LEA SI,DATA1 ADD SI,10LP1: PUSH CXPUSH SILP2: MOV AX,[SI] CMP AX,[SI-2] JBE NOXCHG XCHG AX,[SI-2] MOV [SI],AXNOXCHG: DEC SIDEC SILOOP LP2POP SIPOP CXLOOP LP1LEA DX,STRING2 MOV AH,09HINT 21HMOV CX,6LEA SI,DATA1L2: MOV AX,[SI]ADD SI,2CALL DISPAXCALL DISPCRLOOP L2 MOV AH,4CH INT 21H DISPAL PROCPUSH AXPUSH CXPUSH DXPUSH AXMOV CL,4SHR AL,CLCALL CHANG MOV AH,02H MOV DL,AL INT 21HPOP AXAND AX,0FH CALL CHANGMOV AH,02HMOV DL,ALINT 21HPOP DXPOP CXPOP AXRETDISPAL ENDP CHANG PROCCMP AL,10JNGE CHANG1ADD AL,7 CHANG1: ADD AL,30H RETCHANG ENDP DISPAX PROC XCHG AL,AH CALL DISPAL XCHG AH,AL CALL DISPAL RET DISPAX ENDP DISPCR PROCPUSH AXPUSH DXMOV AH,2MOV DL,0AH INT 21HMOV AH,2MOV DL,0DH INT 21HPOP DXPOP AX RET DISPCR ENDPCODE ENDSEND START3.编写如下程序,并在机器上调试成功。
微机原理及程序设计试卷(一)一、填空题(共15分,每空1分)1、十六进制数30A.5转换为二进制是1100001010.0101,转换为十进制是778.3125。
2、偏移量是指存储单元相对逻辑段首地址的偏移距离。
3、8088/8086系统中,不改变DS值的情况下,其数据段的最大寻址范围是_____64_KB。
4、PC总线中,IOR为低电平时,表明CPU对端口进行_____读_____操作。
5、8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是_____CS__、____DS____、_____ES___、_____SS___。
6、每条指令的执行过程中是由____取指令____、____指令译码____和___指令执行_____等操作组成。
7、I/O端口的编址方式有__独立(单独)编址______和_____统一编址___ 两种二、选择题(共20分,每小题2分)1、在机器数()中,零的表示形式是唯一的。
A、原码B、补码C、反码D、原码和反码2、若采用双符号位判断溢出,当结果的符号位为11时,表示()。
A、结果为正,无溢出B、结果正溢出C、结果负溢出D、结果为负,无溢出3、中央处理机(CPU)是指()。
A、运算器B、控制器C、运算器和控制器D、运算器、控制器和主存储器4、PSW是指令部件中()。
A、指令寄存器B、指令译码器C、程序计数器D、程序状态寄存器5、寄存器间接寻址中,操作数放在()。
A、通用寄存器B、主存单元C、堆栈D、程序计数器6、EPROM是指()。
A、随机读写存储器B、可编程的只读存储器C、只读存储器D、可擦除的可编程只读存储器7、存储周期是指()。
A、存储器的读出时间B、存储器的写入时间C、存储器进行连续读和写操作所允许的最短时间间隔D、存储器进行连续写操作所允许的最短时间间隔8、某一存储单元的逻辑地址为2500H:0010H时,其对应的物理地址为()。
A、2500HB、0010HC、25100HD、25010H9、DMA传送结束由I/O接口向CPU发出中断请求,其目的是( )。
微机原理试题库及答案一、选择题1. 在微机系统中,CPU不能直接访问的存储器是()。
A. RAMB. ROMC. CacheD. 硬盘2. 下列关于微处理器的叙述中,错误的是()。
A. 微处理器是微机的核心部件B. 它包括控制器和运算器两部分C. 微处理器只能执行整数运算D. 微处理器可以执行控制命令3. 在微机系统中,用于存放当前正在执行的程序和数据的存储器是()。
A. ROMB. RAMC. 硬盘D. 软盘4. 微机系统中,I/O设备通过()与CPU进行通信。
A. 数据总线B. 控制总线C. 地址总线D. I/O总线5. 在微机系统中,用于实现存储器扩展的芯片是()。
A. 计数器B. 寄存器C. 存储器接口芯片D. 算术逻辑单元二、填空题6. 微机系统中的总线包括________、________和________三种类型。
7. 在微机系统中,________是用于存储程序和数据的物理部件。
8. 中断系统允许CPU在执行程序过程中,对外界请求做出响应,这种响应称为________。
9. 微机系统中的________是用于控制CPU和其他系统部件协同工作的部件。
10. 在微机系统中,________是用于暂时存放信息的高速存储部件。
三、简答题11. 简述微处理器的发展历程及其对计算机性能的影响。
12. 描述微机系统中存储器的层次结构,并解释每一层次的作用。
13. 解释中断在微机系统中的作用及其实现方式。
14. 阐述微机系统中输入/输出设备的作用及其与CPU的通信过程。
15. 描述微机系统中总线的作用及其分类,并解释它们各自的功能。
四、计算题16. 给定一个16位的二进制补码数,其数值为F7E1,请计算其十进制等价值。
17. 如果一个微机系统的时钟频率为2GHz,且每个时钟周期可以执行一条指令,计算在一分钟内该系统可以执行多少条指令。
18. 给定一个微机系统的内存地址范围是0x0000到0xFFFF,请计算该系统的最大内存容量。
微机原理习题及答案(总13页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--微机原理习题册第 1 章数制和码制1.将下列十进制数分别转换为二进制数(4)(1)147 (2)4095 (3)解:147=B 4095=B= =2. 将下列二进制数分别转换为十进制数(3)(1)(2).001B解:= .001B==3.将二进制数转换成十六进制数(1)B(2)11B(3)101B (4)0B(5)01111111B(6)0B 解:(1)95H(2)34BH(3)FFFDH(4)0815H(5)7FH(6)401H4.已知 a=1011B, b=11001B, c=100110B,按二进制完成下列运算,并用十进制运算检查计算结果:(1)a+b;(2)c-a-b;(3)a·b;(4)c/b;解:a=1011B=11, b=11001B=25, c=100110B=38(1)a+b=100100B=36 (2)c-a-b=10B=2(3)a·b=1B=275 (4)c/b=1……1101B(=13)5.设机器字长为 8 位,写出下列各数的原码和补码:(1)+1010101B (2)-1010101B (3)+1111111B (4)-1111111B (5)+1000000B (6)-1000000B 解:(1)+1010101B 原码01010101B 补码 01010101B(2)-1010101B 原码 B 补码 B(3)+1111111B 原码 01111111B 补码 01111111B(4)-1111111B 原码 B 补码 B(5)+1000000B 原码 01000000B 补码 01000000B(6)-1000000B 原码 B 补码 B6.已知 a=00111000B,b=B,计算下列逻辑运算:(1)a ANDb;(2)a OR b;(3)a XOR b;(4)NOT a;解:(1)00000000B(2)1B(3)1B(4)B7.求下列组合 BCD 数的二进制和十六进制表示形式:()(1)3251;(2)12907;(3)2006 解:(1)0011 0010 0101 0001B,3251H(2)0001 0010 1001 0000 0111 B , 12907H(3)0010 0000 0000 0110B , 2006H8.设下列四组为 8 位二进制补码表示的十六进制数,计算 a+b 和 a-b,并判定其结果是否溢出:(1)a=37H,b=57H;(2)a=0B7H,b=0D7H;(3)a=0F7H ,b=0D7H ;(4)a=37H ,b=0C7H 。
sign 与 sintegerch1 与 caps 均 sum 与 i 变量1. 将下面 C 语言程序的代码片段转换为功能等价的汇编语言代码片段, 其中 均为双字变量。
if ( sinteger = = 0) sign = = 0; else If ( siteger > 0) sign = 1; else sign = - 1; mov eax,sinteger mov edx,sign cmp eax,0 jnz L1 mov ebx,0L1:cmp ebx,0 jl L2 mov ebx,1 L2:mov ebx,-12. 将下面 C 语言程序的代码片段转换为功能等价的汇编语言代码片段,其中 为字节变量。
if (ch1> = ' a ' && ch1< = ' z ') caps= =0; if (ch1> = A ' '&& ch1< = 'Z ') caps= =1; mov ax,ch1 mov bx,capscmp ax,a jb next cmp ax,z ja next mov bx,0 next:cmp ax,A jl done cmp ax,Z ja done done:3. 将下面 C 语言程序的代码片段转换为功能等价的汇编语言代码片段,其中 均为双字变量。
sum=0;for ( i=1;i< =100;i++) if ( i%2= =0) sum=sum+i; mov ecx,i mov ecx,1 .while(ecx<=100) mov eax,ecx xor edx,edx mov ebx,2 div ebx cmp edx,0 jnz next add sum,ecx next:inc ecx .endw1. 能被 4 整除但不能被 100 整除,或者年被 400 整除的年份是闰年。
微机原理及应用(202104)
一、单选题
1.已知X=68,Y=12,若用8位二进制数表示,则 [X-Y]补的值为()。
A.11101000B
B.01001110B
C.00111000B
D.10111000B
答案:C
2.BLOCK1单元开始连续10个单元清0的伪指令是()。
A.BLOCK1 DB 10 DUP(‘0’)
B.BLOCK1 DB 10 DUP(?)
C.BLOCK1 DB DUP(0)
D.BLOCK1 DB 10 DUP(0)
答案:D
3.下列程序段运行后,X单元的内容为()。
A.140
B.166
C.180
D.120
答案:A
4.指令指针寄存器(EIP)中存放的是()。
A.当前指令
B.下一条要执行的指令
C.操作数地址
D.下一条要执行指令的地址
答案:D
5.设AX=8057H,BX=0F79H,执行下列指令后,BX的内容是()。
A.8057H
B.0F79H
C.0F57H
D.8079H
答案:A
6.设有一现场模拟信号,其最大可能变化频率为4KHZ,则在收集此信息时,最多每隔()输入一次,才能反映出输入信号的变化。
A.0.5ms
B.0.25ms
C.0.125ms
D.2ms
答案:C
7.设有一现场模拟信号,其最大可能变化频率为2KHZ,则在收集此信息时,最多每隔()输入一次,才能反映出输入信号的变化。
A.0.5ms。
西电机电院微机原理上机答案汇编语⾔上机题姓名:学号:成绩:实验⼀、上机过程及DEBUG应⽤编写程序,建⽴数据段DA TA,将你的姓名(汉语拼⾳)及学号存⼊DATA数据段的BUFFER1区域,然后利⽤程序将BUFFER1区域中的字符串(姓名及学号)依次传送到从BUFFER2开始的内存区域中去。
上机过程与要求1.建⽴原程序:源程序⽂件名为buffer.asm ,源程序清单如下:data segmentbuffer1 db 'hepan04105038'buffer2 db 13 dup(?)data endscode segmentASSUME CS:CODE,DS:DA TASTART:mov ax,datamov ds,axmov es,axlea si,buffer1lea di,buffer2mov cx,0dcldrep movsbmov ah,4chint 21hcode endsend start2.汇编后⽣成的obj⽂件名为buffer .OBJ3.连接后⽣成的⽬标⽂件名为buffer .EXE4.DEBUG调试:在DEBUG下,利⽤U、D、G、R等命令对EXE⽂件进⾏调试后,相关信息如下:(1)表1-1 反汇编清单中所反映的相关信息段地址偏移地址机器码助记符最后⼀条指令14B4 001E D1E3 SHL BX,1*注:最后⼀条指令是对应于代码段中最后⼀条指令(2)在未执⾏程序之前,⽤D命令显⽰内存区域BUFFER1及BUFFER2中的内容,其相关信息如表1-2所⽰。
表1-2 未执⾏程序之前的数据区内容变量区段地址值偏移地址变量值(或字符串)BUFFER1 14B2 0000 hepan04105038BUFFER2 14B2 000D ………….(3)执⾏程序以后⽤D命令显⽰内存区域的相关信息,如表1-3。
表1-3 执⾏程序之后的数据区内容变量区段地址值偏移地址变量值(字符串)BUFFER1 14B2 0000 hepan04105038BUFFER2 14B2 000D hepan04105038(4)⽤R命令检查寄存器的内容如表1-4所⽰。