微机原理作业及参考答案(18页).doc

上传人:1595****071 文档编号:36317974 上传时间:2022-08-26 格式:DOC 页数:18 大小:86.50KB
返回 下载 相关 举报
微机原理作业及参考答案(18页).doc_第1页
第1页 / 共18页
微机原理作业及参考答案(18页).doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《微机原理作业及参考答案(18页).doc》由会员分享,可在线阅读,更多相关《微机原理作业及参考答案(18页).doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-第一章 计算机基础 (P32)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补= 00

2、101011 (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,

3、y2=-0100001,试计算下列各式。(字长8位)(1)x1+y1补 (2)x1-y2补(3)x2-y2补 (4)x2+y2补(5)x1+2*y2补 (6)x2+y2/8补答案:(1)x1+y1补=00010100+00100001补=00110101补=00110101(2)x1-y2补=x1补+-y2补=00010100+00100001=00110101(3)x2-y2补=x2补+-y2补=11101100+00100001=00001101(4)x2+y2补=x2补+y2补=11101100+11011111=11001011(5)x1+2*y2补=x1补+2*y2补=0001010

4、0+10111110=11010010(6)x2+y2/8补=11101100+y2/8补=11101100+11111100=111010001-7 用补码来完成下列运算,并判断有无溢出产生(字长为8位):(1)85+60 (2)-85+60(3)85-60 (4)-85-60答案:(1)x补+y补=01010101+00111100=10010001 = -111,有溢出(2)x补+y补=10101011+00111100=11100111 =-25,无溢出(3)x补+y补= 01010101+11000100=00011001 =25,无溢出(4)x补+y补=10101011+11000

5、100=01101111 =111,有溢出1-8在微型计算机中存放的两个补码数,试用补码加法完成计算,并判断有无溢出产生。(1)x补+y补=01001010+01100001=10101011 有溢出(2)x补-y补=01101100-01010110 = 01101100+10101010=00010110无溢出注: X补Y补=X补Y补 Y补的算法:将Y补连同符号位一起按位取反加11-9 试将下列各数转换成BCD码:(1)(30)10 (2)(127)10(3)00100010B (4)74H 答案:(1)(30)10 = (0011 0000)BCD (2)(127)10 = (0001

6、0010 0111)BCD(3)00100010B = 34 = (0011 0100)BCD (4)74H = (116)10 = (0001 0001 0110)BCD1-10 下列各数代表什么ASCII字符: (1)41H (2) 72H(3) 65H (4) 20H答案:(1)41H =(0100 0001)2,代表字符A。(2)72H = (0111 0010)2,代表字符r。(3)65H = (0110 0101)2,代表字符e。(4)20H = (32)10 = (0010 0000)2, 代表SP。1-11 写出下列字符的ASCII码: 9,*,=,!,$答案: 9 0011

7、1001 * 0010 1010 = 0011 1101 ! 0010 0001 $ 0010 00011-21 试用示意图说明内存储器的结构和读、写操作。 参考课本P22第二章 80X86/Pentium微处理器(P90)2-3 在执行指令期间,EU能直接访问存储器吗?为什么?答:不能,因为CPU由EU和BIU组成,在指令执行期间,EU负责到BIU指令队列去取指令,执行指令,如果需要从存储器取数据,由BIU负责总线操作。2-7 8086/8088有几位状态位?有几位控制位?其含义分别是什么?答:8086/8088有6位状态位,3位控制位。状态位:CF进位标志;PF奇偶标志;AF辅助进位标志;

8、ZF零标志;SF符号标志,OF溢出标志。控制位:IF 允许中断标志;DF方向标志;TF陷阱标志2-9 简述A0与/BHE在8086系统中的作用。答:8086有16根数据线,可以在一个总线读写周期中,读写一个字数据。8086CPU配置的内存分为奇地址和偶地址存储体。如果要读写一个字数据,需要分别从奇地址和偶地址存储体读写一个字节数据。由A0=0选通偶地址存储体,一个字节数据送到低八位数据线D0D7;由/BHE=0选通奇地址存储体,一个字节数据送到高八位数据线D8D15。2-19设双字12345678H的起始地址是A001H,试说明这个双字在存储器中如何存放?答:地址为A001H、A002H、A0

9、03H、A004H的存储单元分别存放:78H、56H、34H、12H。存放原则:低地址存放低位数据,依次存放在连续的存储单元中。2-20 已知堆栈段寄存器SS=A000H,堆栈指示器SP=0100H,试将数据1234ABCDH推入堆栈,画出进栈示意图。最后栈顶SP=?答: SP=00FCH 物理地址 0A00FCH-0A00FFH的内容依次为CD,AB,34,12.注:SP:堆栈栈顶指示器,16位寄存器,存放栈顶的偏移地址。2-21 试求出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别。(1)1278H+3469H(2)54E3H-27A0H(3)3881H+3597H(4)01E3

10、H-01E3H解:(1) 0001 0010 0111 1000 + 0011 0100 0110 1001 0100 0110 1110 0001CF=0 PF=1 AF=1 ZF=0 SF=0 OF=0 (2) 0101 0100 1110 0011 + 1101 1000 0110 0000 1 0010 1101 0100 0011 CF=0 PF=0 AF=0 ZF=0 SF=0 OF=0 (3) 0011 1000 1000 0001 + 0011 0101 1001 0111 0110 1110 0001 1000 CF=0 PF=1 AF=0 ZF=0 SF=0 OF=0 (4

11、) 0000 0001 1110 0011 + 1111 1110 0001 1101 1 0000 0000 0000 0000 CF=0 PF=1 AF=0 ZF=1 SF=0 OF=0注:16位操作数的最低二进制位:b0、最高二进制位:b15 AF:看b3是否向b4有进(借)位:辅助进借位2-24 什么是时钟周期,机器周期,总线周期,什么是指令周期?参考课本P55。第三章 80X86/Pentium指令系统(P135)3-5 寻址方式:要注意题目要求是源操作数还是目的操作数。(1)MOV SI,2100H (2)MOV CX,DISPBX(3)MOV SI,AX (4)ADC AX,BX

12、SI(5)AND AX,DX (6)MOV AX,BX+10H(7)MOV AX,ES:BX (8)MOV AX,BX+SI+20H(9)MOV BP,CX (10)PUSH DS参见课本内容,掌握寻址方式和EA、PA的计算。地址表达式:标号/变量/常量+基址寄存器+变址寄存器 地址表达式:存储器操作数,以地址表达式的值为偏移地址 如下:是否正确? MOV AX, SIDI MOV AX, BXBP MOV AX, ELEMS+CX MOV AX,ELEMS+100SIMOV BX, AX3-8 (1)AX=3355H, SP=1FFFEH(2) AX=3355H, DX=4466H, SP=

13、1FFFEH3-12 (3)BX=0056H, AX=1E40H (4)SI=00F6H, SI=0024H(5)AX=5678H, 09226H=1234H3-14 (1)MOV AX,0 XOR AX,AX(2)MOV CL,4 ROR BL,CL (3)假设N1、N2、M1、M2都为字节变量,则 MOV AX,N1 CWD IDIV N2 MOV M1,AL MOV M2,AH (4)AND BX,1111011110101111b (5)XOR AX 4020H (6) TEST DX,0000001000000001b JZ ZERO;ZF=1说明bo、b9全为0 TEST DX,0

14、000000000000001bJZ B0ZERO; ZF=1说明bo为0TEST DX,0000001000000000bJZ B9ZERO; ZF=1说明b9为0; bo、b9全为1 ZERO:B0ZERO:B9ZERO: (7) OR CX,13-17NUM1 DW 4148H,2816H NUM2 DW 2258H,8452H(1) MOV AX,NUM2 ADD NUM1,AX MOV AX,NUM2+2 ADD NUM1+2,AX(2) RES DB 2DUP(?) MOV AL,BYTE PTR NUM1 ADD AL,BYTE PTR NUM1+1 ADD AL,BYTE PT

15、R NUM1+2 ADD AL,BYTE PTR NUM1+3 MOV RES,AL(3) 假设存放的数据为无符号数 MOV SI,OFFSET NUM1 XOR AX,AX MOV CX,8 LP:ADD AL,SI ADC AH,0 INC SI LOOP LP MOV RES,AL MOV RES+1,AH假设存放的数据为带符号数 MOV SI,OFFSET NUM1 XOR BX,BX MOV CX,8 LP:MOV AL,SI CBW ADD BX,AX INC SI LOOP LP MOV RES,AL MOV RES+1,AH(4) MOV AX,NUM1 ADD NUM2,AX

16、 MOV AX,NUM1+2 ADC NUM2+2,AX3-18(1) XOR AX, AX ;AX清零 LEA SI, NUM1 MOV CX, 8 LOP: ADD AL, SI DAA ADC AH, 0 ;AF清零 INC SI LOOP LOP MOV RES, AL MOV RES+1, AH (2) MOV AL, NUM1SUB AL, NUM2DASMOV RES, AL 差90H; CF=13-21(1)BX=9AH (2)BX=61H(3)BX=8071H(4)BX=10F7H (5)BX=0FF1CH3-23(1)将自FIRST开始的存储区中的连续10个字节传送到从SE

17、COND开始的存储区中。(2)将自0404H开始的存储区中连续256个字节全部赋0值。3-27(1)IP=1256H (2)IP=3280H(3)IP=2450H3-28CS=2000H;IP=009AH;SP=0F178H;SP=8FHSP+1=3DH; SP+2=50H; SP+3=40H; 3-29MOV BL,ALCMP AL,01HJZ LAB1CMP AL,02HJZ LAB2CMP AL,04HJZ LAB3AND BL,07HJNZ OKOK: LAB1: LAB2: LAB3: 3-31MOV AX,0032HCMP AX,XJL N_HIGHMOV BX,XSUB BX,Y

18、JO OVERFLOWJNS NEXTNEG BXNEXT: MOV RESULT,BXN_HIGH: OVERFLOW: 第四章 汇编语言程序设计(P195)4-2 内存分配和预置数据 VAR1 DB 12,-12H,3 DUP(0,0FFH) VAR2 DB 100 DUP(0,2 DUP(1,2),0,3) VAR3 DB WELCOME TO VAR4 DW VAR3+6 ;存放的是偏移地址 VAR5 DD VAR3 ;存放的是偏移地址、段地址4-3(1)DATA1 DB 86H,27H,23H,00H,24H,1AH(2)DATA2 DW 0B430H,1062H(3)DATA3 D

19、B 4DUP(20H),20,0,6DUP(1,2)4-5(1)VAR1的偏移量是0030H;VAR2的偏移量是003AH(2)CNT=0010H(3)VAR2+2单元的内容是02H4-11DATASEGMENTXDB4 DUP(?)YDB4 DUP(?)ZDB4 DUP(?);定义X,Y,Z为字节变量DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX MOV DL,0MOVAX,WORD PTR XSUB AX,WORD PTR Y ;X,Y低16位相减MOVWORD PTR Z,AX ;结果存入Z的低16位MOV

20、AX,WORD PTR X2SBB AX,WORD PTR Y2;X,Y高16位相加MOVWORD PTR Z2,AX;结果存入Z的高16位JNO OKMOVDL,-1 ;溢出OK:MOVAH,4CHINT21HCODEENDSENDSTART4-13 CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX MOV GOOD,0MOV PASS,0MOVBAD,0 XOR BX,BX ;bx存放全年级统计总成绩 XOR SI,SI MOVCX,100LP: MOV AH,BUFSICMPAH,85H JAGS CMPAH,60H JAE

21、PS MOV AL,BAD ADD AL,1 DAAMOV BAD,AL JMP AGAINGS: MOV AL,GOOD ADD AL,1 DAAMOV GOOD,AL JMP AGAINPS: MOV AL,PASS ADD AL,1 DAAMOV PASS,ALAGAIN: MOV AL,BL ADD AL,AH DAAMOV BL,ALMOV AL,BH ADC AL,0 DAAMOV BH,ALINC SILOOP LP MOV AVRG,BHMOVAH,4CHINT21HCODEENDSENDSTART4-15DATASEGMENTFIRSTDB.$ ;定义字符串COUNTEQU1

22、00;定义字符串长度RESULTDW? ;定义存放结果单元DATAENDSSTACKSEGMENTPARA STACK STACKDB100 DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,OFFSET FIRST ;建立数据指针MOVCX,COUNT ;设置循环次数MOVDX,0 ;清零计数器LP:CMPBYTE PTR BX,AJNZNEXT ;非A则转到NEXTINCDX ;是A则计数器DX加1NEXT:INCBX ;调整数据指针LOOPLP ;循环100次MOVRESULT,DX;

23、结果存入RESULTMOVAH,4CHINT21HCODEENDSENDSTART4-17DATASEGMENTDATA_W DWX1,X2, COUNTEQU($-DATA_W)/2COUT1 DW0 COUT2 DW0 COUT3 DW0 DATAENDSSTACKSEGMENTPARA STACK STACKDB100 DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,OFFSET DATA_W ;建立数据指针MOVCX,COUNT ;设置循环次数LP:CMPWORD PTR BX,0

24、JGENEXT INCCOUT2JMP AGAIN NEXT: JG NEXT2 INCCOUT3JMP AGAINNEXT2: INCCOUT1AGAIN:INCBX ;调整数据指针 INC BXLOOPLP ;循环100次 MOVAH,4CH INT21HCODEENDSENDSTART4-18DATAESGMENTARRAYDBD1,D2,.,DN;定义字节数组COUNTEQU$-ARRAY;字节数组长度赋予符号名COUNTMAXDB?MINDB?DATAENDSSTACKSEGMENT PARA STACK STACKDB100 DUP(?)STACKENDSCODESEGMENTAS

25、SUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,OFFSET ARRAY;建立数据指针MOVCX,COUNT-1;设置循环次数MOVAL,BXMOVMAX,AL;MAX赋予初值为ARRAY的第一个数据MOVMIN,AL;MIN赋予初值为ARRAY的第一个数据LP:INCBX;调整数据指针MOVAL,BX;取数据CMPAL,MIN;与MIN进行比较JNBBIG;比MIN大则跳转BIG判断是否最大值MOVMIN,AL;小于或等于MIN则给MIN重新赋值JMPNEXT;比较下一个数据BIG:CMPAL,MAX;与MAX进行比较JNANEXT;比MAX

26、小则比较下一个数据MOVMAX,AL;大于或等于MAX则给MAX重新赋值NEXT:LOOPLPMOVAH,4CHINT21HCODEENDSENDSTART4-19MOV AX,DATAMOV DS,AXMOV AL,0 ;AL存放绝对值最大的数MOV SI,0 ;SI作为指针MOV CX,256LP: CMP BLOCKSI,0 JGE NEXT NEG BLOCKSI ;负数取相反数NEXT:CMP AL,BLOCKSI JAE NEXT2 MOV AL,BLOCKSINEXT2:INC SILOOP LP MOV MAX,AL4-23 MOV CH,0 MOV SI,0LP: CMP S

27、TRINGSI,0DH JZ OVER INC CH INC SI JMP LP OVER:4-32STACK SEGMENT PARA STACK STACK DB 100 DUP(?)STACK ENDSDATA SEGMENTSTR1 DB 8 DUP(0);存储输入的6位十进制数ASCII码,STR12STR17,分别保存十万个位,下同STR2 DB 8 DUP(0)SUM DB 8 DUP(0);存储结果的ASCII码BCD1 DB 3 DUP(0);存储输入的6位十进制数的压缩BCD码,BCD12BCD10,分别保存十万个位,下同BCD2 DB 3 DUP(0)BCDSUM DB

28、4 DUP(0);存储结果的BCD码MESG1 DB PLEASE INPUT THE FIRST NUMBER : $MESG2 DB PLEASE INPUT THE SECOND NUMBER : $MESG3 DB THE SUM IS : $DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAHCHH PROC FAR;回车换行子函数子程序 MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H RETHCHH ENDPGETSTR PROC FAR ;从键盘输入字符串子程序 MOV AH,0AH INT

29、21H;调用10(0AH)号DOS中断,从键盘输入字符串 RETGETSTR ENDPASCTOBCD PROC FAR;ASCII转BCD码子程序,SI指向ASCII串,DI指向BCD串 MOV CX,3NEXT1: MOV AL,SI SUB AL,30H PUSH CX MOV CL,4 SHL AL,CL POP CX MOV DI,AL INC SI MOV AL,SI SUB AL,30H ADD DI,AL DEC DI INC SI LOOP NEXT1 RETASCTOBCD ENDPBCDADD PROC FAR;两个BCD码相加子程序,SI和DI指向两个被加数,BX指向结

30、果 MOV CX,3NEXT2: MOV AL,SI MOV AH,DI ADC AL,AH DAA MOV BX,AL INC SI INC DI INC BX LOOP NEXT2 JNC NEXT3;如果结果有第7位,则将这位写入结果中 MOV BCDSUM3,1NEXT3: RETBCDADD ENDPBCDTOASC PROC FAR;BCD码转ASCII码子程序,SI指向BCDASCII串,DI指向ASCII串 MOV CX,3 CMP BCDSUM3,1;如果结果有第7位,则将这位转变为ASCII码 JNE NEXT4 MOV SUM0,31HNEXT4: MOV AL,SI;转

31、变剩下的6位 AND AL,0F0H PUSH CX MOV CL,4 SHR AL,CL POP CX ADD AL,30H MOV DI,AL INC DI MOV AL,SI AND AL,0FH ADD AL,30H MOV DI,AL INC DI DEC SI LOOP NEXT4 MOV SUM7,24H;9号DOS中断的要求,被显示串要以$结尾 RETBCDTOASC ENDPDISP PROC FAR;显示字符串子程序 LEA DX,SUM MOV AH,09H INT 21H;调用9号DOS中断,显示字符串 RETDISP ENDPSTART: MOV AX,DATA MO

32、V DS,AX MOV DX,OFFSET MESG1;显示PLEASE INPUT THE FIRST NUMBER : MOV AH,09H INT 21H LEA DX,STR1 MOV STR10,7 CALL GETSTR;从键盘输入字符串,即6位十进制数 CALL HCHH LEA SI,STR12 LEA DI,BCD12 CALL ASCTOBCD;ASCII转BCD码 MOV DX,OFFSET MESG2;显示PLEASE INPUT THE FIRST NUMBER : MOV AH,09H INT 21H LEA DX,STR2 MOV STR20,7 CALL GET

33、STR;从键盘输入字符串,即6位十进制数 CALL HCHH LEA SI,STR22 LEA DI,BCD22 CALL ASCTOBCD;ASCII转BCD码 LEA SI,BCD1 LEA DI,BCD2 LEA BX,BCDSUM CALL BCDADD LEA SI,BCDSUM2 LEA DI,SUM1 CALL BCDTOASC;两个BCD码相加 MOV DX,OFFSET MESG3 MOV AH,09H INT 21H CALL HCHH CALL DISP;显示结果字符串 MOV AH,4CH INT 21HCODE ENDS END START第五章 半导体存储器(P221)5-5所占地址空间:20000H27FFFH5-61#: 8000H-87FFH2#: 8800H-8FFFH3#: 9000H-97FFH4#: 0A000H-0A3FFH5#: 0A400H-0A7FFH6#: 0A800H-0ABFFH7#: 0AC00H-0AFFFH5-7 用24译码器来产生4片的片选信号,各片的地址分别是: 0 80000H807FFH1 80800H80FFFH2 81000H817FFH3 81800H81FFFH

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁