微机软件实验习题与答案(完整版)
- 格式:doc
- 大小:448.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号功能要求的要显示字符串的结束标志。
第二章计算机基础(P32)1-1电子管,晶体管,中小规模集成电路、大规模、超大规模集成电路。
1-2把CPU和一组称为寄存器(Registers)的特殊存储器集成在一片大规模集成电路或超大规模集成电路封装之中,这个器件才被称为微处理器。
以微处理器为核心,配上由大规模集成电路制作的只读存储器(ROM)、读写存储器(RAM)、输入/输出、接口电路及系统总线等所组成的计算机,称为微型计算机。
微型计算机系统是微型计算机配置相应的系统软件,应用软件及外部设备等.1-3写出下列机器数的真值:(1)01101110 (2)10001101(3)01011001 (4)11001110答案:(1)+110 (2)-13(原码) -114(反码)-115(补码)(3)+89 (4)-78(原码)-49(反码)-50(补码)1-4写出下列二进制数的原码、反码和补码(设字长为8位):(1)+010111 (2)+101011(3)-101000 (4)-111111答案:(1)[x]原=00010111 [x]反= 00010111 [x]补= 00010111(2)[x]原=00101011 [x]反= 00101011 [x]补= 00101011(3)[x]原=10101000 [x]反= 11010111 [x]补= 11011000(4)[x]原=10111111 [x]反= 11000000 [x]补=110000011-5 当下列各二进制数分别代表原码,反码,和补码时,其等效的十进制数值为多少?(1)00001110 表示原码14,反码14,表示补码为14(2)11111111 表示原码-127,反码-0,表示补码为-1(3)10000000 表示原码-0,反码-127,表示补码为-128(4)10000001 表示原码-1,反码-126,表示补码为-1271-6 已知x1=+0010100,y1=+0100001,x2=-0010100,y2=-0100001,试计算下列各式。
微机习题+答案⼀、程序填空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 两个多位十进制数相加的实验实验内容:将两个多位十进制数相加,要求加数和被加数均以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 两个数相乘的实验(无符号数相乘)实验内容:实现十进制数的乘法。
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 将下列补码转化成二进制数的真值。
第一部分 例题与习题第1章 微型计算机基础例 题1.把十进制数转化为二进制数。
P7解:把十进制数转换成二进制数时,需要对一个数的整数部分和小数部分分别进行处理,得出结果后再合并。
整数部分:一般采用除2取余法小数部分:一般采用乘2取整法余数 低位 整数 高位 2 | 137 2 | 68 × 2 2 | 34 2 | 17 × 2 2 | 8 2 | 4 × 2 2 | 2 1 高位 低位 (137)10=()2 10=2所以,10=(.111)22.把二进制数转换为八进制数和十六进制数。
P9解:八进制、十六进制都是从二进制演变而来,三位二进制数对应一位八进制数,四位二进制数对应一位十六进制数,从二进制向八进制、十六进制转换时,把二进制数以小数点为界,对小数点前后的数分别分组进行处理,不足的位数用0补足,整数部分在高位补0,小数部分在低位补0。
(10 1)2=(010 100)2=8(1 2=(0001 2=163.将八进制数转换为二进制数。
P9解:8=(010 100)2=24.X=,Y=-,求[X -Y]补,并判断是否有溢出?P11解:[X -Y]补=[X]补+[-Y]补[X]补= [Y]补= [-Y]补=说明:当异号相减运算时,通过补码,减法运算转化为两个正数的加法运算,结果为负(符号位为1),表示运算结果溢出。
+ -------------- 1-------------- 0-------------- 0-------------- 1------------- 1 ------------- 15.B分别为原码、补码、BCD码表示时,对应的十进制数为多少?解:[X]原=,X=-21[X]补=,[X]原=,X=-107[X]BCD=,X=956.简述计算机为什么能实现自动连续的运行?解:计算机能实现自动连续的运行,是由于计算机采用了存储程序的工作原理。
把解决问题的计算过程描述为由许多条指令按一定顺序组成的程序,然后把程序和处理所需要的数据一起输入到计算机的存储器中保存起来。
微机原理实验(含解答程序)-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN微机原理实验课题(共16个内容,附解答程序)(汇编程序可以使用MASM FOR WINDOWS)1.将偏移地址为2000h开始的100个单元依次设置为0~99。
2.将两个64位的二进制数相加,记录相加的和以及各个状态标志的值。
3. 编写程序,在屏幕上分行显示自己的姓名、学号。
4. 编写程序,通过键盘输入0——9之间的一个数字,利用查表法计算其平方。
在DEBUG下查看执行结果。
5. 用分支结构设计程序实现符号函数100010xy xx>⎧⎪==⎨⎪-<⎩,要求x和y存放在内存单元中,并将判断的结果在屏幕上显示输出。
6. 在键盘上输入一个字符,判断是否为小写字母,若不是,显示错误信息,若是,则将其转换为大写字母并显示。
7. 在键盘上输入一个字符,判断它是一个数字、大写字母还是小写字母,若为数字,则显示digital,若为字母,显示letter,否则,显示other。
8. 将字节型变量x的低四位(一位十六进制数)以十六进制数的形式显示。
9. 编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N (N+1)大于200为止,并将结果由屏幕上显示出来。
10. 将字形变量x以二进制数的形式在屏幕上显示输出。
11. 将字形变量x以十六进制数的形式在屏幕上显示输出。
12. 将内存单元缓冲区中的符号数(20个)按从小到大的顺序排列,并以十六进制数的形式显示。
13. 编制程序计算S=1+2+3+……+N,并将结果由屏幕上显示出来。
(要求:在屏幕上显示提示信息,提示输入N,N用十六进制表示,且N小于0FH,用子程序实现(段内),将输入的结果用十六进制数输出显示,显示结果的程序用子程序是实现(段间))。
14.要求在键盘上输入一个小于四位的十进制数,将其转换为二进制数存放,并讲转换后的结果以十六进制数的形式在屏幕上显示出来。
第一章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 超出了机器数补范围,因此出错了。
第 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、下列数值或字符串表示成相应的ASCII码是多少?(1)换行(2)字母“Q”(3))空格(4)汉字“隘”(国标码)(5)汉字“保”(内部码)(6)51 (7)Hello2、下列各机器数所表示数的范围是(1)8位二进制无符号定点整数;(2)8位二进制无符号定点小数;(3)16位二进制无符号定点整数;(4)用补码表示的16位二进制有符号整数;3、(111)X=273,基数X=?4、有一个二进制小数X=0.X1X2X3X4X5X6(1)若使X≥1/2,则X1……X6应满足什么条件?(2)若使X>1/8,则X1……X6应满足什么条件?5、有两个二进制数X=01101010,Y=10001100,试比较它们的大小。
(1) X和Y两个数均为无符号数;(2) X和Y两个数均为有符号的补码数。
6、一个用十六进制表示的两位整数,如果改用十进制数表示,顺序正好颠倒,该数是多少?二、填空题1、对于R进制数来说,其基数(能使用的数字符号个数)是,能使用的最小数字符号是。
2、八进制数的基数为8,能用到的数字符号个数为。
3、十进制数72转换成八进制数是。
4、与十进制数49.875等值的八进制数是。
5、与十进制数67等值的十六进制数是。
6、十进制小数0.6875转换成十六进制数是。
7、二进制数101.011转换成十进制数是。
8、与二进制数101110等值的八进制数是。
9、十六进制数0E12转换成二进制数是。
10、汉字国标码字符集中共包含有个汉字和图形符号。
11、把汉字区位码的区码和位码都加上十六进制数,即得到汉字国标码;把汉字区位码的区码和位码都加上十六进制数,即得到汉字机内码。
12、将下列十进制数8609、5254、2730、1998变为8421BCD 码分别是。
三、选择题1、在计算机机内部,一切信息的存取、处理和传送都是以形式进行的。
微型计算机技术课后练习题含答案微型计算机技术已经成为现代社会一个重要的组成部分,作为一个学习微型计算机技术的初学者,必须掌握基本的知识和技能。
本文将介绍一些微型计算机技术的练习题,并提供答案供初学者参考。
选择题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)、内存、输入输出设备和存储器组成。
《微机原理及应用》教材课后习题及答案(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.题目:编程将(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,编程将以上数据按无符号数进行排序,上机调试出程序,并将程序和结果记录下来。
目录实验一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 两个多位十进制数相加的实验实验容:将两个多位十进制数相加,要求加数和被加数均以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=”。