微机软件实验习题与答案(完整版)
- 格式:doc
- 大小:451.00 KB
- 文档页数:59
微计算机二三章1.已知物理地址为FFFF0H,且段内偏移量为A000H,若对应的段地址放在DS中,则DS应为(B) 。
A.5FFFHB.F5FFHC.5FFF0HD.F5FF0H2.下列CPU中属于准16位的是C 。
A.8080B.8086C.8088D.80386SX3.8088的外部数据总线为 A 位。
A.8B.16C.32D.644.8086CPU的内部结构由 D 组成。
A.ALU,EU,BIUB.ALU,BIU,地址加法器C.寄存器组,ALUD.EU,BIU5.每当8086的指令队列中有B空字节,BIU就会自动把指令取到指令队列中。
A.1个B.2个C.3个D.4个6.BIU的功能是C。
A.计算有效地址B.分析指令,产生控制信号C.与存储器或I/O端口之间进行传送,并能形成物理地址D.进行算术运算与逻辑运算7.指令队列缓冲器的作用是 D 。
A.暂存操作数地址B.暂存操作数C.暂存指令地址D.暂存预取指令8.8086的指令队列的长度是 C 字节。
A.4个B.5个C.6个D.8个9.8088的指令队列的长度是A字节。
A.4个B.5个C.6个D.8个10.下列寄存器都存在于BIU部件的是B。
A.SP、CSB.IP、DSC.BP、IPD.FR、SP11.8086 CPU内部共有 C 个16位寄存器。
A.12B.13C.14D.1612.不属于EU部分的寄存器是A 。
A.IPB.BPC.DID.SP13.8086/8088的状态标志有D个。
A.3B.4C.5D.614.8086有B个地址/数据复用引脚。
A.8B.16C.20D.3215.8088有 A 个地址/数据复用引脚。
A.8B.16C.20D.3216.8086/8088中,一个最基本的总线周期由 B 个时钟周期(T状态)组成。
A.1B.4C.2D.617.在8086/8088中,在T1状态,CPU往总线发出C信号。
A.数据B.状态C.地址D.其它18.总线周期为T1、T2、T3、T4,若要增加等待状态T W,它应插在C之后。
1、可编程定时器计数器8253(一)ioport equ 0d400h-0280hio8253a equ ioport+283hio8253b equ ioport+280hcode segmentassume cs:codestart: mov al,14h ;设置8253通道0为工作方式2,二进制计数mov dx,io8253aout dx,almov dx,io8253b ;送计数初值为0FHmov al,0fhout dx,allll: in al,dx ;读计数初值call disp ;调显示子程序push dxmov ah,06hmov dl,0ffhint 21hpop dxjz lllmov ah,4ch ;退出int 21hdisp proc near ;显示子程序push dxand al,0fh ;首先取低四位mov dl,alcmp dl,9 ;判断是否<=9jle num ;若是则为'0'-'9',ASCII码加30Hadd dl,7 ;否则为'A'-'F',ASCII码加37Hnum: add dl,30hmov ah,02h ;显示int 21hmov dl,0dh ;加回车符int 21hmov dl,0ah ;加换行符int 21hpop dxret ;子程序返回disp endpcode endsend start2、可编程定时器计数器(二)ioport equ 0d400h-0280hio8253a equ ioport+280hio8253b equ ioport+281hio8253c equ ioport+283hcode segmentassume cs:codestart:mov dx,io8253c ;向8253写控制字mov al,36h ;使0通道为工作方式3out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253aout dx,al ;先写入低字节mov al,ahout dx,al ;后写入高字节mov dx,io8253cmov al,76h ;设8253通道1工作方式2out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253bout dx,al ;先写低字节mov al,ahout dx,al ;后写高字节mov ah,4ch ;程序退出int 21hcode endsend start3、加法DATA SEGMENTDATA1 DB ' ','2','6','8','5','9','$' ;' '空格用来存放最高位进位,'$'是DOS功能调用INT 21H中9号功能要求的要显示字符串的结束标志。
微机习题+答案⼀、程序填空1、下列程序段要求在100 个带符号数中找出其中最⼤的⼀个数。
设该数据区⾸址的偏移地址=2000H,最后要求将最⼤值存⼊偏移地址=2100H的单元中,试填空完成该程序。
MOV BX,2000HMOV AX,[BX]MOV CX,100LOP1:INC BXCMP AL,[BX]JNG LOP2MOV AL,[BX]LOP2:LOOP LOP1MOV [2100H] ,AL5、求某数据区内负数的个数程序如下:(在空⽩处填⼊适当的语句)。
(1)STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DI,3000HMOV CL,[DI]XOR CH,CHMOV BL, CHINC DIA1: MOV AL, [DI]TEST AL, 80HJE A2INC BLA2: INC DILOOP A1INT 03HCODE ENDSEND START(2)STACK SEGMENT STACKDB 20 DUP(?)STACK ENDSDA TA SEGMENTNUM DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START: MOV SI,2000HMOV CX,50MOV BL,00HA1: MOV AL,[SI]CMP AL,’A’;CMP AL,41HJNZ A2INC BLA2: INC SILOOP A1MOV NUM,BLINT 03HCODE ENDSEND START4、有如下程序段,DA TA SEGMENTX1 DB 0FAHX2 DB 0FCH DA TA ENDSCODE SEGMENT……MOV AL,X1ADD AL,X2……CODE ENDSEND问:ADD指令执⾏完后标志寄存器中的哪些位受到影响?标在题图中。
微型计算机技术及应用(第四版)习题和答案第二章1、8088与8086的区别[解答] ①外部数据总线位数不同。
8086外部数据总线16位,在一个总线周期内可以输入/输出一个字(16位数据),而8088外部数据总线8位,在一个总线周期内只能输入/输出一个字节(8位数据)。
②指令队列缓冲器大小不同。
8086指令队列可容纳6个字节,且在每一个总线周期中从存储器取出2个字节的指令代码填入指令队列;而8088指令队列只能容纳4个字节,在一个机器周期中取出一个字节的指令代码送指令队列。
③部分引脚的功能定义有所区别。
(1) AD15-AD0的定义不同。
在8086中都定义为地址/数据分时复用引脚;而在8088中,由于只需要8条数据线,因此,对应于8086的AD15-AD8这8根引脚在8088中定义为A15-A8,它们在8088中只做地址线用。
(2) 引脚28和34的定义不同。
在最大方式下,8088的第34引脚保持高电平,在最小模式时,8088和8086的第28引脚的控制信号相反,而8086的第34引脚为BHE/S7,BHE用来区分是传送字节、还是字,8088的第34引脚为SS0,用来指出状态信息,不能复用。
(3) 引脚28的有效电平高低定义不同。
8088和8086的第28引脚的功能是相同的,但有效电平的高低定义不同。
8088的第28引脚为IO/M,当该引脚为低电平时,表明8088正在进行存储器操作;当该引脚为高电平时,表明8088正在进行I/O操作。
8086的第28引脚为M/IO,电平与8088正好相反。
2、根据8086CPU的存储器读写时序图,请说明:(1)地址信号应在哪些时间内有效?(2)读、写动作发生在什么时间内?(3)为什么读与写数据的有效时间长短不一样?(4)T1状态下数据/地址线上是什么信息?数据信息是什么时候给出?[解答] 地址信号只在T1状态时有效,并被锁存起来。
读动作发生在T3、T4状态,而写动作发生在T2、T3、T4状态。
1)(正确)比较两个无符号数的大小(量个数放在内存S3的连续两个单元中),将大数存入MAX单元中。
DATAS SEGMENTBUF DB 1,2CNT EQU $-BUFDATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXMOV CX,CNT-1LEA BX,BUFMOV AL,[BX]L2: INC BXCMP AL,[BX]JAE L1MOV AL,[BX]L1:LOOP L2ADD AL,30H- 1 - / 16MOV DL,ALMOV AH,2INT 21HMOV AH,4CHINT 21HCODES ENDSEND STAR2)(正确)试编一程序,求三个带符号数据中的最大值,并将最大值存入MAX单元中,设三个带符号数分别在三个变量X,Y,Z中存储。
DATAS SEGMENTX DB 5Y DB-2Z DB 0MAX DB?DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXMOV AL,XMOV BL,YCMP AL,BLJG L1MOV AL,BLL1:MOV BL,ZCMP AL,BLL2: MOV MAX,ALMOV AH,4CHINT 21HCODES ENDSEND START3)(正确)根据MODE单元中编号0-7分别转向L0-L7标号处,执行L0-L7处分别完成显示‘0-7’字符,即当MODE=0时,转向L0标号,完成显示‘0’,当MODE=7时,转向L7标号,完成显示‘7’。
DATAS SEGMENTMODE DB 0DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:- 3 - / 16MOV AX,DATASMOV DS,AXMOV AL,MODECMP AL,0JZ L0CMP AL,1JZ L1CMP AL,2JZ L2CMP AL,3JZ L3CMP AL,4JZ L4CMP AL,5JZ L5CMP AL,6JZ L6MOV DL,'7'MOV AH,02HINT 21HJMP L8L0:MOV DL,'0'MOV AH,02HINT 21HJMP L8L1:MOV DL,'1'MOV AH,02HINT 21HJMP L8L2:MOV DL,'2'MOV AH,02HINT 21HJMP L8L3:MOV DL,'3'MOV AH,02HINT 21HJMP L8L4:MOV DL,'4'- 5 - / 16MOV AH,02HINT 21HJMP L8L5:MOV DL,'5'MOV AH,02HINT 21HJMP L8L6:MOV DL,'6'MOV AH,02HINT 21HJMP L8L8:MOV AH,4CHINT 21HCODES ENDSEND START4)(正确)根据输入值(0-4)的不同,执行不同的操作,用转移标法编写程序。
第一章习题答案1-1 请说明CPU的功能以及CPU是如何执行指令和程序的。
答:CPU的功能是执行程序和统筹处理计算机系统中各类事务。
CPU执行指令分为3步:取指令、分析指令、执行指令;计算机程序是由一条条指令按一定的顺序排列组成的,CPU执行程序的过程就是一条条指令累计执行的过程,其方式分为串行作业方式和流水线作业方式。
1-2 请说明单片机内部主要是由哪些部件组成的,并说明各部件的作用。
答:CPU:由控制器和运算器构成,控制器的作用是执行指令和协调系统各部件的工作;运算器的作用是进行逻辑运算和算术运算。
存储器:存储计算机工作时使用的信息,即指令代码和数据代码。
I/O接口电路:具有数据缓冲、数据隔离及数据转换的功能。
1-3 请问对于容量位8K的存储器芯片,它的地址线是多少根?答:8K=8192=213,故地址线为13根。
另附:存储器的数据线由存储器的字长决定,例如一块32K×16(存储器容量显示格式:存储单元数×存储单元的字长)的存储器,其地址线为15根,数据线为16根。
1-4 将十进制数78,134,分别用二进制数、十六进制数和8421BCD吗表示。
答:(78)D=(1001110)B=(4E)H=(01111000)8421BCD(134)D=(10000110)B=(86)H=(000100110100)8421BCD注:8421BCD码为4位表示一个十进制数符,本质是符号不是数值,所以不可省略0。
1-5 将下列真值分别转化为用8位和16位二进制数表示的原码、补码和反码。
X=1000100;[X]8位原=[X]8位反=[X]8位补=01000100;[X]16位原=[X]16位反=[X]16位补=0000000001000100X= -1000100[X]8位原=11000100,[X]8位反=10111011,[X]8位补=10111100;[X]16位原=1000000001000100,[X]16位反=1111111110111011,[X]16位补=1111111110111100;X= -0111111[X]8位原=10111111,[X]8位反=11000000,[X]8位补=11000001;[X]16位原=1000000000111111,[X]16位反=1111111111000000,[X]16位补=1111111111000001;1-6 将下列补码转化成二进制数的真值。
目录实验一DEBUG的启动及其基本命令的使用实验二内存操作数及寻址方法实验三汇编语言程序的调试与运行实验四查表程序设计实验五系统功能调用实验六分支程序设计实验七循环程序设计实验八子程序设计实验九综合程序设计实验心得体会参考文献实验一 DEBUG的启动及其基本命令的使用源程序:(指导书中给出)DA TA SEGMENTSTRING1 DB 'Move the cursor backward'STRING2 DB 'Move the cursor backward'MESS1 DB 'Match.',13,10,'$'MESS2 DB 'No Match.',13,10,'$'DA TA ENDSSTACK SEGMENT STACKDB 40 DUP (?)STACK ENDSPROGNAM SEGMENTASSUME CS:PROGNAM,DS:DA TA,ES:DA TA,SS:STACKMAIN PROC FARSTART: PUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA SI,STRING1LEA DI,STRING2CLDMOV CX,25REPZ CMPSBJZ MA TCHLEA DX,MESS2JMP SHORT DISPMATCH: LEA DX,MESS1DISP: MOV AH,09hINT 21HRETMAIN ENDPPROGNAM ENDSEND START运行结果:用DEBUG调试将输出字符串改为‘No Match’用E指令修改“backward”为“forward”再次用d命令查看修改结果。
用g命令运行程序实验二内存操作数及寻址方法1、(1)程序说明:设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。
1.题目:编程将(AX)=2387、(BX)=192FH、(CX)=9256中的无符号数按由大到小排序,上机编程调试出程序,并将程序及排序结果记录在下面。
;======================; 参考答案:;--------------------------------------CODE SEGMENTASSUME CS:CODESTART:MOV AX,2387MOV BX,192FHMOV CX,9256CMP AX,BXJAE NEXT1XCHG AX,BXNEXT1:CMP AX,CXJAE NEXT2XCHG AX,CXNEXT2:CMP BX,CXJAE NEXT3XCHG BX,CXNEXT3:MOV AH,4CHINT 21HCODE ENDSEND START;======================2.题目:编程将(BX)=8600H、(CX)=3489H、(DX)=9235按有符号数由大到小排序,上机编程调试出程序,并将程序及排序结果记录在下面。
;======================; 参考答案:;--------------------------------------CODE SEGMENTASSUME CS:CODESTART:MOV BX,8600hMOV CX,3489HMOV DX,9235CMP BX,CXJGE NEXT1XCHG BX,CXNEXT1:CMP BX,DXJGE NEXT2XCHG BX,DXNEXT2:CMP CX,DXJGE NEXT3XCHG CX,DXNEXT3:MOV AH,4CHINT 21HCODE ENDSEND START;======================3.题目:在数据段中定义如下数据:32,34,89H,,编程将以上数据按有符号数进行排序,并将程序和结果记录下来。
;======================; 参考答案:;--------------------------------------DATA SEGMENTNUM DB 32,34,89HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AX ;初始化DSLEA BX,NUM ;取有效地址到BX,以便访问要排序的数MOV AL,[BX]CMP AL,[BX+1]JGE NEXT1 ;若第一个数大则跳转,否则将第一个与第二个数交换XCHG AL,[BX+1]MOV [BX],ALNEXT1:CMP AL,[BX+2]JGE NEXT2;若第一个数大则跳转,否则将第一个与第三个数交换XCHG AL,[BX+2]MOV [BX],ALNEXT2:MOV AL,[BX+1];将第二个和第三个数比较CMP AL,[BX+2]JGE NEXT3;若第二个数大则跳转,否则将第二个与第三个数交换XCHG AL,[BX+2]MOV [BX+1],ALNEXT3:MOV AH,4CHINT 21HCODE ENDSEND START;======================4.题目:在数据段中定义如下数据:99,25,86,编程将以上数据按无符号数进行排序,上机调试出程序,并将程序和结果记录下来。
微机原理软件实验实验1 两个多位十进制数相加的实验实验容:将两个多位十进制数相加,要求加数和被加数均以ASCII码形式各自顺序存放以DATA1和DATA2为首的5个存单元中(低位在前),结果送回DATA1处。
完整代码如下:DATAS SEGMENT;此处输入数据段代码STRING1 DB'input the first number:','$'STRING2 DB 13,10,'input the second number:','$'STRING3 DB 13,10,'the output is:','$'DATA1 DB 6 DUP(00H),'$'DATA2 DB 6 DUP(00H),'$'DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AX;此处输入代码段代码LEA SI,DATA1LEA DI,DATA2L0:LEA DX,STRING1;打印字符串STRING1MOV AH,09INT 21HINPUT1: ;输入第一个数MOV AH,01;输入字符至AL中INT 21HCMP AL,'/'JE L1MOV [SI],ALINC SIJMP INPUT1L1:LEA DX,STRING2;打印字符串STRING2MOV AH,09INT 21HINPUT2: ;输入第二个数MOV AH,01;输入字符至ALINT 21HCMP AL,'/'JE L2MOV [DI],ALINC DIJMP INPUT2L2:MOV SI,0CLC;清空进位标志位CFMOV CX,6PLUSE: ;相加;SUB DATA1[SI],30H;SUB DATA2[SI],30H;这里不能使用这两条指令,因为如果DATA1[5]=00H,00H-30H需要借位相减,使CF=1MOV AL,DATA1[SI]ADC AL,DATA2[SI]AAA;加法调整指令,可使两个ASCII数直接相加MOV DATA1[SI],AL;和赋给DATA1[SI]INC SILOOP PLUSEL3:LEA DX,STRING3;打印字符串STRING3MOV AH,09INT 21HMOV CX,6MOV SI,6SHOW:DEC SICMP DATA1[SI],00HJE SHOWSHOW2:MOV DL,DATA1[SI]ADD DL,30HMOV AH,02INT 21HCMP SI,0JE L4DEC SIJMP SHOW2L4: MOV AH,4CHINT 21HCODES ENDSEND START运行结果如下:输入为低位在前,即输入1234和99999相加实际上是4321和99999相加(即:4321+99999=104320)实验2 两个数相乘的实验(无符号数相乘)实验容:实现十进制数的乘法。
第一章2、完成下列数制之间的转换。
(1) 01011100B=92D(3)135D=10000111B(5)10110010B=262Q=B2H3、组合型 BCD 码和非组合型 BCD 码有什么区别?写出十进制数254 的组合型 BCD数和非组合型数。
答:组合型 BCD码用高四位和低四位分别对应十进制数的个位和十位,其表示范围是0~99;非组合型 BCD码用一个字节的低四位表示十进制数,高四位则任意取值,表示范围为0~9 。
组合型: 254=( 001001010100 )BCD非组合型: 254=(00000010 00000101 00000100 )BCD7、计算机为什么采用补码形式存储数据?当计算机的字长n=16,补码的数据表示范围是多少?答:在补码运算过程中,符号位参加运算,简化了加减法规则,且能使减法运算转化为加法运算,可以简化机器的运算器电路。
+32767~ -32768。
9、设计算机字长n=8,求下列各式的[X+Y]补和 [X-Y]补,并验证计算结果是否正确。
(1) X=18, Y=89 [X+Y]补 =00010010+01011001=01101011B=107D 正确[X-Y]补 =10111001B=00010010+10100111= ( -71D)补正确(2) X=-23, Y=-11 [X+Y]补 =11101001+11110101=11011110B= ( -34D)补正确[X-Y] =11101001+00001011=11110100B= ( -12D)补正确补(3) X=18, Y=-15 [X+Y]补=00010010+11110001=00000011B= ( 3D)补正确[X-Y] =00010010+00001111=00100001B= ( 33D)补正确补(4) X=-18, Y=120 [X+Y]补 =11101110+01111000=01100110B= ( 102D)补正确[X-Y] =11101110+10001000=01110110B= ( 123D)补由于 X-Y=-138 超出了机器数补范围,因此出错了。
微机测试题及答案一、单项选择题(每题2分,共20分)1. 微机中,CPU指的是:A. 中央处理器B. 存储器C. 输入设备D. 输出设备答案:A2. 计算机的存储器中,RAM指的是:A. 随机存取存储器B. 只读存储器C. 硬盘存储器D. 光盘存储器答案:A3. 下列哪个设备不是计算机的输入设备?A. 键盘B. 鼠标C. 显示器D. 扫描仪答案:C4. 在计算机系统中,软件可以分为:A. 系统软件和应用软件B. 硬件软件和应用软件C. 操作系统和应用程序D. 应用软件和数据库答案:A5. 计算机病毒是一种:A. 计算机硬件B. 计算机软件C. 生物病毒D. 计算机程序答案:D6. 下列哪个选项是计算机操作系统?A. ExcelB. WordC. WindowsD. Photoshop答案:C7. 计算机的二进制数“1010”转换为十进制数是:A. 8B. 10C. 12D. 14答案:B8. 在计算机中,1KB等于:A. 1024字节B. 1000字节C. 100字节D. 10字节答案:A9. 下列哪个选项是计算机的输出设备?A. 打印机B. 键盘C. 鼠标D. 扫描仪答案:A10. 计算机的主机板(主板)上不包含以下哪个部件?A. CPU插槽B. 内存插槽C. 硬盘接口D. 显示器答案:D二、多项选择题(每题3分,共15分)1. 计算机的主要硬件包括:A. CPUB. 内存C. 硬盘D. 显示器答案:A, B, C, D2. 计算机软件可以分为:A. 系统软件B. 应用软件C. 游戏软件D. 教育软件答案:A, B3. 下列哪些是计算机病毒的特点?A. 破坏性B. 传染性C. 潜伏性D. 免疫性答案:A, B, C4. 计算机存储设备包括:A. 硬盘B. 光盘C. U盘D. 键盘答案:A, B, C5. 计算机的输入设备包括:A. 键盘B. 鼠标C. 扫描仪D. 打印机答案:A, B, C三、填空题(每题2分,共10分)1. 计算机的CPU主要由______和______两部分组成。
第 1题 :局域网比广域网的传输速率低。
( ×)第 2题 :如果想释放 DHCP 服务器分配给所有计算机的 IP 地址,则应使用“ping ”命令。
( ×)第 3 题 :多模光纤的传输距离远大于单模光纤的传输距离。
( ×)第 4 题 : 红外线通信比较适合于近距离的楼宇之间的数据通信。
( √)第 5 题 : 采用 CSMA/CD 介质访问方式,每个站在发送数据帧之前,首先要进行载波监听,只有介质空闲时 ,才允许发送帧。
( √)第 6 题 : 采用 CSMA / CD 介质访问方式,不是网中的每个站(节点)都能独立地决定数据帧的发送与接收。
(×)第7 题: 采用令牌环网络的介质访问方式,节点接收到一个空令牌后,如果有数据需要发送,就可以先发出一个忙令牌,然后紧接着发送包装好的数据帧,否则让空令牌往下一节点流动。
( √)第 8 题 : 采用令牌环网络的介质访问方式,接收到忙令牌的节点仍可发送数据。
( ×)第 9 题 :IEEE802.3标准最大的特点就是采用CSMA /CD的介质访问控制方式。
(√)第 10 题 :早期的以太网采用共享总线方式,采用同轴电缆作为传输媒介,传输速率为10 Mbps。
( √)第 11 题 :千兆以太网主要被用在网络的骨干部分。
( √)第 12 题 : ATM 采用同步传输模式。
( ×)第 13 题 : ATM 信元是固定长度的分组,所有的数字信息都要经过切割,封装成统一格式的信元在网络中传递。
( √)第 14 题 : ATM 网络采用了一些有效的业务流量监控机制,将网络拥塞发生的可能性降到最小。
( √)第 15 题 : SDH 传送网称之为同步光网络。
( √)第 16 题 : 我国各大电信运营商的基础光纤骨干网络大都采用了 SDH 传输体系。
( √)第 17 题 : CATV 是指有线电视网。
( √)第 18 题: CATV 是以电缆、光纤为主要传输媒介,向用户传送本地、远地及自办节目的电视广播系统。
实验一显示程序实验1.emu8086介绍Emu8086—Assembler and Microprocessor Emulator是一个可在Windows 环境下运行的8086CPU汇编仿真软件, Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug的模拟器(虚拟机器)于一身,它优于一般编译器的地方在于提供了一个虚拟的80x86环境,拥有自己一套独立的“硬件”,可以完成一些纯软件编译器无法完成的功能例如Led显示,交通灯,步进电机等等,而且动态调试(DEBUG)时非常方便一.软件启动启动界面如图1所示,用户可以选择新建文本、程序实例、启动指南、近期文档。
注册的用户名随意,密码112,即可成功。
二.新建文件单击图1中的“New”选项,软件会弹出如图2所示的选择界面。
● COM模板——适用于简单且不需分段的程序,所有内容均放在代码段中,程序代码默认从ORG 0100H开始;● EXE模板--适用于需分段的复杂程序,内容按代码段、数据段、堆栈段划分。
需要注意的是采用该模板时,用户不可将代码段人为地设置为ORG 0100H,而应由编译器自动完成空间分配;● BIN模板--二进制文件,适用于所有用户定义结构类型;● BOOT模板—-适用于在软盘中创建文件。
此外,若用户希望打开一个完全空的文档,则可选择empty workspace的选项。
三.编译和加载程序用户可根据上述选择的模板中编写程序,如图3所示。
该编辑界面集文档编辑、指令编译、程序加载、系统工具、在线帮助为一体,其菜单功能如表1所示.编写完程序后,用户只需单击工具栏上的“compile”按钮,即可完成程序的编译工作,并弹出如图4所示的编译状态界面.若有错误则会在窗口中提示,若无错误则还会弹出保存界面,让用户将编译好的文件保存相应的文件夹中。
默认文件夹为…\emu8086\MyBuild\,但您可以通过菜单中assembler/ set output directory对默认文件夹进行修改。
微型计算机技术课后练习题含答案微型计算机技术已经成为现代社会一个重要的组成部分,作为一个学习微型计算机技术的初学者,必须掌握基本的知识和技能。
本文将介绍一些微型计算机技术的练习题,并提供答案供初学者参考。
选择题1.下面四种表示数据存储的进制必须相互转换,正确的是()A. 十六进制、八进制B. 十进制、二进制C. 十六进制、二进制D. 八进制、二进制答案:C。
2.以下哪个不是微型计算机系统的输入设备()A. 扫描仪B. 鼠标C. 打印机D. 游戏设备答案:C。
3.在DOS下,输入dir /a和dir /ad的结果是()A. 两者结果相同B. dir /ad只列出子目录,dir /a列出所有文件和子目录C. dir /a只列出非隐藏文件和子目录,dir /ad找出所有子目录D. dir /a列出所有文件和子目录,dir /ad只列出子目录答案:D。
4.在WINDOWS的“资源管理器”中可以做到的事情是()A. 打印文件,编辑文件B. 对文件进行排序,可以打开或删除文件C. 在文件夹中创建或删除文件夹、文件D. 移动文件,复制文件答案:C。
简答题1.描述一个典型计算机系统。
答案:典型的计算机系统包括硬件和软件两部分。
硬件由中央处理器(CPU)、内存、输入输出设备和存储器组成。
软件可分为系统软件和应用软件。
系统软件包括操作系统和应用程序,应用软件可分为嵌入式软件、普通软件、WEB应用软件等。
2.描述微型计算机系统中的五个最常用的输入设备。
答案:微型计算机系统中最常见的五个输入设备是键盘、鼠标、扫描仪、数字化板和摄像头。
键盘是一种标准的输入设备,可用于输入字符、数字和符号。
鼠标是一种指针设备,通过鼠标可以定位和操作屏幕上的物体。
扫描仪可以将纸质文件转换为数字格式,数字化板可用于手写输入,摄像头可用于输入图像和视频。
答案选择题:1.C2.C3.D4.C简答题:1.典型的计算机系统包括硬件和软件两部分。
硬件由中央处理器(CPU)、内存、输入输出设备和存储器组成。
第一章1.1 简答题(1) 计算机字长:处理器每个单位时间可以处理的二进制数据位数。
(2) 总线信号分成三组,分别是数据总线、地址总线和控制总线。
(3) PC机主存采用DRAM组成。
(4) 高速缓冲存储器Cache是处理器与主存之间速度很快但容量较小的存储器。
(5) ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。
(8) MASM是微软开发的宏汇编程序。
(9) 指令的处理过程。
处理器的“取指—译码—执行周期” 是指处理器从主存储器读取指令,翻译指令代码的功能,然后执行指令所规定的操作的过程。
1.2 判断题(1) 软件与硬件的等价性原理说明软硬件在功能和性能及成本方面是等价的。
(错)原因:(3) 8086的数据总线为16位,也就是说8086的数据总线的个数或者说条数、位数是16.(对)(5) 处理器并不是直接连接外设,而是通过I/O接口电路与外设连接。
(对)(7) Windows的模拟DOS环境与控制台环境是一样的。
(错) 原因:(10) 处理器进行读操作,就是把数据从处理器内部读出传送给主存或外设。
(错) 原因:1.3 填空题(2) Intel 8086支持1M 容量存储空间,80486支持4G 容量主存空间。
(3) 16位二进制共有216个编码组合,如果一位对应处理器的一个地址信号,16位地址信号共有寻址64K 容量主存空间。
(4) DOS主要支持两种可执行文件,它们的扩展名分别是exe和com。
(5)英文缩写ISA通常表示PC机工业标准结构(Industry Standard Architecture)总线,也标志指令集结构,后者的英文原文是Instruction Set Architecture 。
(6) Windows的文件夹对应的专业术语是目录。
问答题:1.5 什么是通用处理器,单片机,DSP芯片嵌入式系统?答:通用微处理器:适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器。
《微机原理及应用》教材课后习题及答案(5篇范例)第一篇:《微机原理及应用》教材课后习题及答案《微机原理及应用》习题答案第一章ν1.11 请完成下列数制转换:(1)将174.66D转换为对应的二进制和十六进制形式。
(2)将100011101011.01011B转换为对应的十进制和十六进制形式。
(3)将F18A6.6H转换为对应的二进制和十进制形式。
答:174.66D=10101110.1010B=AE.AH100011101011.01011B=2283.34375D=8EB.58HF18A6.6H=989350.375Dν1.12 请写出与数据+37和-37对应的8位机器数原码、反码和补码,并分别用二进制和十六进制表示出来。
答:-37D=(10100101B)原=(11011010B)反=(11011011B)补ν1.13 8位机器数46H,若作为无符号数和补码有符号数,其对应的真值各是什么?若作为BCD码和ASCII码,其对应的又是什么?答:无符号数46H=70,补码46H=+70BCD码46H=46,ASCII码46H=“F”第二章λ2.5什么是8088中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?1MB最多能分成多少个逻辑段?请将如下逻辑地址用物理地址表达:(1) FFFFH:0H (2) 40H:17H (3) 2000H:4500H(4) B821H:4567H 答:⑴ FFFFH:0H = FFFF0H⑵ 40H:17H = 00417H⑶ 2000H:4500H = 24500H⑷ B821H:4567H = BC777H λ2.8已知DS=2000H,BX=0100H,SI=0002,存储单元[20100H]~[20103H]依次存放12H,34H,56H,78H,[21200H]~[21203H]依次存放2AH,4CH,87H,65H,说明下列每条指令执行完后AX寄存器的内容以及源操作数的寻址方式?答:⑴ AX=1200H,立即数寻址;⑵ AX=0100H,寄存器寻址;⑶ AX=4C2AH,直接寻址;⑷ AX=3412H,寄存器间接寻址;⑸ AX=4C2AH,寄存器相对寻址;⑹ AX=7865H,基址变址寻址;⑺ AX=65B7H,基址变址相对寻址。
一、单选题第1题(1分)你的得分:1调试程序DEBUG的命令E表示【1】。
A. 单步运行程序B. 反汇编命令C. 检查和修改寄存器内容D. 修改内存单元内容题目答案:D你的答案:D第2题(1分)你的得分:1语句DADA DW 'AB','CD','E','F' 汇编后占用的存储空间是【2】个字节。
A. 4 B. 8 C. 6 D. 5题目答案:B你的答案:B第3题(1分)你的得分:0把汇编源程序变成代码程序的过程是【3】。
A. 编译B. 汇编C. 编辑D. 连接题目答案:B你的答案:D题目分析:把高级语言源程序转换成代码程序称为编译;把汇编语言源程序转换成代码程序称为汇编。
编辑指的是对源程序进行录入、修改等操作。
连接指的是把代码程序转换成可执行文件。
第4题(1分)你的得分:1下列程序段:dataseg segmentevenbyte1 db 78h, 0e2hdataseg ends其中byte1 的地址为【4】。
A. 奇地址B. 偶地址C. 段地址D. 逻辑地址题目答案:B你的答案:B第5题(2分)你的得分:0已知VAR EQU 9MOV CX,((VAR GE 8)AND 2000H) OR ((VAR LT 8) AND 1990H)汇编上述语句时,生成的语句为【5】。
A. MOV CX,1990HB. MOV CX,8C. MOV CX,2000HD. MOV CX,0题目答案:C你的答案:D题目分析:已知VAR EQU 9((VAR GE 8)AND 2000H) OR ((VAR LT 8) AND 1990H)( 0FFFFH AND 2000H) OR (0000H AND 1990H)2000H OR 0000H2000H第6题(1分)你的得分:1书写汇编语言程序时规定,对字母开头的十六进制数,其前面必须加【6】。
微机原理软件实验实验1 两个多位十进制数相加的实验实验内容:将两个多位十进制数相加,要求加数和被加数均以ASCII码形式各自顺序存放以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
完整代码如下:DATAS SEGMENT;此处输入数据段代码STRING1 DB'input the first number:','$'STRING2 DB 13,10,'input the second number:','$'STRING3 DB 13,10,'the output is:','$'DATA1 DB 6 DUP(00H),'$'DATA2 DB 6 DUP(00H),'$'DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AX;此处输入代码段代码LEA SI,DATA1LEA DI,DATA2L0:LEA DX,STRING1;打印字符串STRING1MOV AH,09INT 21HINPUT1: ;输入第一个数MOV AH,01;输入字符至AL中INT 21HCMP AL,'/'JE L1MOV [SI],ALINC SIJMP INPUT1L1:LEA DX,STRING2;打印字符串STRING2MOV AH,09INT 21HINPUT2: ;输入第二个数MOV AH,01;输入字符至ALINT 21HCMP AL,'/'JE L2MOV [DI],ALINC DIJMP INPUT2L2:MOV SI,0CLC;清空进位标志位CFMOV CX,6PLUSE: ;相加;SUB DATA1[SI],30H;SUB DATA2[SI],30H;这里不能使用这两条指令,因为如果DATA1[5]=00H,00H-30H需要借位相减,使CF=1MOV AL,DATA1[SI]ADC AL,DATA2[SI]AAA;加法调整指令,可使两个ASCII数直接相加MOV DATA1[SI],AL;和赋给DATA1[SI]INC SILOOP PLUSEL3:LEA DX,STRING3;打印字符串STRING3MOV AH,09INT 21HMOV CX,6MOV SI,6SHOW:DEC SICMP DATA1[SI],00HJE SHOWSHOW2:MOV DL,DATA1[SI]ADD DL,30HMOV AH,02INT 21HCMP SI,0JE L4DEC SIJMP SHOW2L4: MOV AH,4CHINT 21HCODES ENDSEND START运行结果如下:输入为低位在前,即输入1234和99999相加实际上是4321和99999相加(即:4321+99999=104320)实验2 两个数相乘的实验(无符号数相乘)实验内容:实现十进制数的乘法。
要求被乘数和乘数均以ASCII码形式各自顺序存放在内存中,乘积在屏幕上显示出来。
完整代码如下:DATAS SEGMENT;此处输入数据段代码STRING1 DB'the output is:','$'DATA1 DB 31H,32H,33HDATA2 DB 35H,36HDATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AX;此处输入代码段代码MOV DL,10MOV AL,DATA1[0];AL=31HSUB AL,30H ;AL=01HMUL DL;乘10 ;AL=10ADD AL,DATA1[1];AL=10 +32HSUB AL,30H ;AL=10 +32H-30H=12MUL DL ;AL=120ADD AL,DATA1[2];AL=120+33HSUB AL,30H ;AL=120+33H-30H=123MOV BL,AL ;BL=AL;MOV AL,DATA2[0];AL=35HSUB AL,30H ;AL=5MUL DL;乘10 ;AL=50ADD AL,DATA2[1];AL=50+36HSUB AL,30H ;AL=50+36H-30H=56MUL BL ;AX=123x56=6888SUB DX,DX;DX清零MOV BX,1000DIV BX;(DX,AX)/1000,商6在AX中,余数888在DX中PUSH DXMOV DL,ALADD DL,30HMOV AH,02 ;打印最高位6INT 21HPOP DXMOV AX,DX;888赋给AXDIV BL;AX/100,商放在AL中,余数88放在AH中MOV DL,ALMOV CL,AH ;!!!这里千万不能把AH直接赋给AL,因为经过INT 21H 指令后AL,AH会改变ADD DL,30HMOV AH,02;打印第二位INT 21HMOV BL,10MOV AL,CLSUB AH,AH;清空AHDIV BL;AX/10,商放在AL中,余数8放在AH中MOV DL,ALMOV CL,AHADD DL,30HMOV AH,02;打印第三位INT 21HADD DL,30HMOV AH,02;打印第四位INT 21HCODES ENDSEND START运行结果为:实验3 字符串匹配实验实验内容:编写程序实现两个字符串比较。
如果相同,则屏幕显示“match”,否则屏幕显示”nomatch”,完整代码如下:DATAS SEGMENT;此处输入数据段代码PRINT1 DB'input the first string:','$'PRINT2 DB 13,10,'input the second string:','$'PRINT3 DB'match','$'PRINT4 DB'nomatch','$'PRINT5 DB 13,10,'output: ','$'STRING1 DB 30 DUP(00H),13,10,'$'STRING2 DB 30 DUP(00H),13,10,'$'DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS,ES:DATAS START:MOV AX,DATASMOV DS,AX;此处输入代码段代码LEA DX,PRINT1;打印字符串PRINT1MOV AH,09INT 21HLEA SI,STRING1;STRING1地址赋给SILEA DI,STRING2;STRING2地址赋给DIINPUT1:MOV AH,01;输入字符至ALINT 21HCMP AL,'/';输入字符串以‘/’结束,转L0JE L0MOV [SI],ALINC SIJMP INPUT1L0:LEA DX,PRINT2;打印字符串PRINT2MOV AH,09INT 21HINPUT2:MOV AH,01; 输入字符至ALINT 21HCMP AL,'/'JE L1MOV [DI],ALINC DIJMP INPUT2L1: MOV CX,30 ;CX=30代表比较30次MOV SI,00HCOMPARE:;字符串一个一个比较MOV AL,STRING1[SI];取STRING1存储单位中的第SI个字符赋给AL CMP AL,STRING2[SI];AL与STRING2存储单位中的第SI个字符比较JNE NOMATCHINC SILOOP COMPAREJMP MATCHNOMATCH:;打印output:nomatch LEA DX,PRINT5MOV AH,09INT 21HLEA DX,PRINT4MOV AH,09INT 21HJMP L2MATCH:;打印output:matchLEA DX,PRINT5MOV AH,09INT 21HLEA DX,PRINT3MOV AH,09INT 21HL2: MOV AH,4CHINT 21HCODES ENDSEND START 运行结果:实验4 从键盘输入数据并显示的实验实验内容:将键盘输入的2位十六进制数转换为等值的二进制数,并在屏幕上显示。
列如:键入f2,则显示11110010.完整代码如下:DATAS SEGMENT;此处输入数据段代码STRING1 DB'please input a string:','$'STRING2 DB 13,10,'the output is:','$'STRING3 DB 13,10,'input error',13,10,'$'DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX;此处输入代码段代码L0: LEA DX,STRING1;打印字符串STRING1 MOV AH,09INT 21HMOV AH,01;输入第一个字符至AL中INT 21HCMP AL,'0'JB ERROR1CMP AL,'9'JBE ENTER1CMP AL,'A'JB ERROR1CMP AL,'F'JBE ENTER1CMP AL,'a'JB ERROR1CMP AL,'f'JBE ENTER1ERROR1:LEA DX,STRING3;打印字符串STRING3MOV AH,09INT 21HJMP L0ENTER1:CALL ASC2BCD;把ASCII码转化成十进制数BCD码MOV CL,4ROL AL,CLMOV BL,AL;把高四位放到BL寄存器中;输入第二个字符MOV AH,01;输入第二个字符至AL中INT 21HCMP AL,'0'JB ERROR1CMP AL,'9'JBE ENTER2CMP AL,'A'JB ERROR1CMP AL,'F'JBE ENTER2CMP AL,'a'JB ERROR1CMP AL,'f'JBE ENTER2ENTER2:CALL ASC2BCD;把ASCII码转化成十进制数BCD码ADD BL,ALLEA DX,STRING2;打印字符串STRING2MOV AH,09INT 21HMOV CX,9CLC;清空标志位SHOW: ;显示BL中的二进制数DEC CXCMP CX,0JE NEXT ;输出完八位乊后返回DOSROL BL,1 ;循环左移一位,若溢出为1,则CF=1 JC M1JMP M2M1: MOV DL,'1';若CF=1,转至M1打印‘1’MOV AH,02INT 21HJMP SHOWM2: MOV DL,'0';若CF=0,转至M1打印‘0’MOV AH,02INT 21HJMP SHOWNEXT:MOV AH,4CHINT 21HASC2BCD PROCCMP AL,'9'JBE L1 ;若AL≤9,转L1SUB AL,07H ;若输入的数为A~F,或者a~f,则减7,A接在39H后面,A~F=3AH~3FH,a~f=5AH~5FHL1: SUB AL,30H ;减30HAND AL,0FH ;滤除高位,保留低位,因为a~f恰好比A~F大20H,这样a~f就和A~F的数值一样了RETASC2BCD ENDPCODES ENDSEND START输出结果为:(若输出不在0~9,A~F,a~f内,则重新输入)实验5 字符和数据计算的实验实验内容:先在屏幕上显示“input string,”,输入字符串; 再显示“result=”。