第一章1.选择题(1)C(2)DA(3)C3填空(1)CPU,微型计算机,系统软件,外围设备,微型计算机系统(2)10,3,12(3)阶数(4)10010010B,01000100B,11010110B,FF4EH(5)3F7H,1C3H,243H,277H,4简答题(1)微处理器,微型计算机和微型计算机系统三者有何联系与区别?微处理器是把原来的中央处理单元CPU的复杂电路(包括运算器和控制器)做在一片或几片大规模集成电路的芯片上。把这种微缩的CPU大规模集成电路称为微处理器。微型计算机是以微处理器为核心,再配备上用大规模集成电路工艺制成的存储器和I/O接口就构成了微型计算机。以微计算机为核心,再配备上系统软件、I/O设备、辅助电路和电源就构成了微机系统。微型计算机系统包括硬件和软件了两大部分。(2)试述在计算机中常采用二进制的缘由?(3)简述如何从补码判断真值的符号?(4)BCD码与纯二进制数有何区别?主要区别是二者对应的二进制位所表示的二进制真值不同,(5)试述机器数的定点和浮点数表示形式。第2章2填空题(1)递增,A7,A5,A3,A1.(2)地址总线的宽度,00000H~0FFFFFH(3)寄存器,运算器,控制器;运算和控制(4)SS,SP(5)MN/MX(6)主频,总线宽度(7)20,163简答题(1)什么是指令周期?什么是总线周期?一个总线周期至少包括几个时钟周期?指令周期是一条指令执行所需的时钟周期,cpu在执行指令过程中,凡需执行访问存储器或访问I/O端口的操作都统一交给BIU的外部总线完成,进行一次访问所需的时间称为一个总线周期。一般一个基本的总线周期由4个时钟周期组成。(2)8086CPU在最小模式下构成计算机系统至少应该包括哪几个基本的部分?(3)8086CPU中,标志寄存器包含哪些标志位?各标志位为‘0’,‘1’分别表示什么含义?(4)8086CPU中有哪些通用寄存器和专用寄存器?说明他们的作用。(5)在8086CPU中,已知CS寄存器和IP寄存器的内容分别如下所示,请确定其物理地址.1)CS=1000H,IP=2000H物理地址:CS*16+IP=10000H+2000H=12000H2)CS=1234H,IP=0C00H物理地址:CS*16+IP=12340H+0C00H=12F40H(6)设(AX)=2345H,(DX)=5219H,请指出两个数据相加或相减后,FLAG中状态标志位的状态.相加:CF=0,SF=0,ZF=0,AF=0,OF=0,PF=0相减:00100011010001011101001000011001补10101101111001111101000100101110CF=0,SF=1,ZF=0,AF=0,OF=0,PF=0(7)8086CPU工作在最小模式下:访问存储器要利用:M/IO、ALE、BHE、RD、WR、DT/R、DEN、READY和数据、地址总线。访问I/O要利用:M/IO、ALE、BHE、RD、WR、DT/R、DEN、READY和数据、地址总线。当HOLD有效并得到响应时,CPU置高阻的信号有:数据/地址总线、数据状态总线及M/IO、BHE、RD、WR、DT/R、DEN、INTA。第三章P1341.选择题(1)D(2)C(3)A(4)A2.填空题(1)递增(2)60H0(3)1F02CH4.请指出下列指令中源操作数和目的操作数的寻址方式。(1)源操作数为立即寻址,目的操作数为寄存器寻址(2)源操作数为立即寻址,目的操作数为寄存器间接寻址(3)源操作数为寄存器间接寻址,目的操作数为寄存器寻址(4)源操作数为寄存器寻址,目的操作数为寄存器寻址(5)单一操作数(源操作数)为寄存器寻址(6)单一操作数(目的操作数)为寄存器寻址(7)源操作数为相对基址变址寻址,目的操作数为寄存器寻址(8)源操作数为寄存器间接寻址,目的操作数为寄存器寻址(9)源操作数为立即寻址和寄存器寻址,目的操作数寄存器寻址(10)单一操作数为段间直接寻址(相对变址寻址)5.请写出如下程序片段中每条逻辑运算指令执行后标志ZF、SF、和PF的状态:MOVAL,0AH;各标志位保持不变ANDAL,0FH;ZF=0SF=0PF=1ORAL,04BH;ZF=0SF=0PF=1XORAL,AL;ZF=1SF=0PF=16.请写出如下程序片段中每条算术运算指令执行后标志CF、ZF、SF、OF、PF和AF的状态:MOVAL,54H;各标志位保持不变ADDAL,4FH;CF=0ZF=0SF=1OF=1AF=1PF=1CMPAL,0C1H;CF=1ZF=0SF=1OF=0AF=0PF=1SUBAL,AL;CF=0ZF=1SF=0OF=0AF=0PF=1INCAL;CF=0ZF=0SF=OF=0AF=0PF=07.(DS)=3000H,(SS)=1500H,(SI)=010CH,(BX)=0870H,(BP)=0500H,指出下列指令的目的操作数字段寻址方式,并计算目的操作数字段的物理地址。(1)MOV[BX],CX目的操作数为寄存器间接寻址目的操作数的物理地址为:DS×16+0870H=30870H(2)MOV[1000H],BX目的操作数为直接寻址目的操作数的物理地址为:DS×16+1000H=31000H(3)MOV[BP],BX目的操作数为寄存器间接寻址目的操作数的物理地址为:SS×16+0500H=15500H(4)MOV[BP+100],CX目的操作数为寄存器相对寻址目的操作数的物理地址为:SS×16+0500H+64H=15564H(5)MOV[BX+100][SI],CX目的操作数为相对基址加变址寻址目的操作数的物理地址为:DS×16+0870H+64H+010CH=309E0H8.指出如下指令哪些是错误的,并说明原因:(1)MOV[SP],BX错。(2)MOVCS,BX错。CS寄存器不能赋值,要由装入程序确定(3)POPCS错。CS寄存器不能赋值,要由装入程序确定(4)JMPBX对。(5)SUB[BP+DI-1000],AL错。偏移量不能为负。但编译能通过。(6)SHLAX,CX错。源操作数最大为255,只能是CL,不能是CX(7)XCHGES:[BX],AL对。(8)LEAAX,[BX+DI]对。9.已知(SS)=2800H,(SP)=0010H,(AX)=0FA0H,(BX)=1002H,下列指令连续执行,请指出每条指令执行后SS、SP、AX、BX寄存器中的内容是多少?PUSHAX;(SS)=2800H,(SP)=000EH,(AX)=0FA0H,(BX)=1002HPUSHBX;(SS)=2800H,(SP)=000CH,(AX)=0FA0H,(BX)=1002HPOPAX;(SS)=2800H,(SP)=000EH,(AX)=1002H,(BX)=1002HPOPBX;(SS)=2800H,(SP)=0010H,(AX)=1002H,(BX)=0FA0H10.阅读下列各小题的指令序列,在后面空格中填入该指令序列的执行结果。(1)MOVBL,26HMOVAL,95HADDAL,BLDAAAL=21HBL=26HCF=1(2)MOVAX,1E54HSTCMOVDX,95XORDH,0FFHSBBAX,DXAX=1EF5HCF=111.已知程序段如下:CMPAX,BXJNCK1JNOK2JMPK3假设有以下三组AX、BX值,那么在程序执行后,分别转向哪里?(1)(AX)=0E301H,(BX)=8F50H转向K1(2)(AX)=8F50H,(BX)=0E301H转向K2(1)(AX)=147BH,(BX)=80DCH转向K3第四章P1831.选择题(1)CB(2)B(3)B(4)D3.(1)DATA1EQUTHISBYTEDA1DW1234H,567H,89ABH(2)DATA2DW56H,0BCH,79H,14H(3)DATA3DB6DUP(‘c’),2DUP(3,3,1),20DUP(?)(4)STRINGDB‘HELLOWORLD!’4.DATA1DB00H,0AH,10HDATA2DB15DUP(04H,3DUP(08H),09H)DATA3DW6577H,636CH,6D6FH5.LEABX,TABLEMOVBX,OFFSETTABLE8.(1)宏展开:+PUSHAX+MOVAX,AX+SUBAX,AX+CMPAX,0+JGENEXT(0014)+MOVBX,AX+POPAX(2)调用无效。语法错误(立即数的使用)。(3)宏展开:+PUSHAX+MOVAX,[BX+SI]+SUBAX,[BX+SI+X]+CMPAX,0+JGENEXT(0025)+MOVCX,AX+POPAX调用无效。相对基址加变址寻址方式形成的值在汇编时是不知道的。11.CMPNMACROX,Y,SUMPUSHAXPUSHDXMOVAL,XCMPAL,YJNCK1MOVDL,5MULDLADDAX,YJMPK2K1:MOVAL,YMOVDL,5MULDLADDAX,XK2:MOVSUM,AXPOPAXENDM12.DSEGSEGMENTCHARDB61DUP(?)DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTARTPROCFARMOVAX,DSEGMOVDS,AXMOVDX,OFFSETCHARMOVAH,0AHINT21HMOVDX,OFFSETCHARMOVAH,09HINT21HMOVAH,4CHINT21HSTARTENDPCSEGENDSENDSTART微机原理第五章部分习题答案4、试编写一汇编程序,要求实现将ASCII码表示的两位十进制数转换为一字节二进制数。DATASEGMENTASCDB36H,35HASCENDDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATADECIBINPROCFARMOVAX,DATAMOVDS,AXMOVBX,OFFSETASCMOVAL,[BX]CMPAL,30HJLEXITCMPAL,39HJGEXITSUBAL,30HMOVDL,[BX+1]CMPDL,30HJLEXITCMPDL,39HJGEXITSUBDL,30HMOVCL,10MULCLADDAL,DLMOVASCEND,ALEXIT:MOVAH,4CHINT21HDECIBINENDPCODEENDSENDDECIBIN5.某存储区中存有20个单字节数,试编写一汇编语言分别求出其绝对值并放回原处。DSEGSEGMENTMUMDB1,2,3,-9,0,7,5,-4,-7,-11,34,-67,-44,-51,1,3,6,8,9,3DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXMOVCX,20MOVSI,OFFSETMUMLP1:MOVAL,[SI]ANDAL,ALJNSDONENEGALDONE:MOV[SI],ALINCSILOOPLP1MOVAH,4CHINT21HSTARTENDPCSEGENDSENDSTART6、试编写一汇编程序,将AX中的各位取反,然后统计出AX中“0”的个数,将结果保存到CL中。CODESEGMENTMAINPROCFARASSUMECS:CODESTART:MOVAX,0E001HMOVDL,0MOVCL,16NOTAXRETEST:ANDAX,AXJSSKIPINCDLSKIP:SHLAX,1LOOPRETESTMOVCL,DLEXIT:MOVAH,4CHINT21HMAINENDPCODEENDSENDSTART12已知a1~a20依次存放在以BUF为首址的数据区,每个数据占两个字节,SUM也是两个字节。试编程计算SUM=a1+a2+a3+...+a20DATASEGMENTDATDW0,1,8,27,64,-9,-5,6,77,-5,55,88,99,33,55,