您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 汇编语言考试复习资料
第一章【课后习题】1用降幂法或除法将下列十进制数转换为二进制数和十六进制数:(1)369(2)10000(3)4096(4)327672将下列二进制数转换为十六进制数和十进制数:(1)101101(2)10000000(3)1111111111111111(4)111111113将下列十六进制数转换为二进制数和十进制数:(1)FA(2)5B(3)FFFE(4)12344完成下列十六进制数的运算:(1)3A+B7(2)1234+AF(3)ABCD-FE(4)7AB×6F5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用是十六进制数表示其运算结果。(1)(―85)+76(2)85+(―76)(3)85―76(4)85―(―76)(5)(―85)―76(6)―85―(―76)6下列各数为十六进制表示的8位二进制数,请说明当它们被看作是用补码表示的带符号数时,它们所表示的十进制数是什么?(1)D8(2)FF7当1.6题的两数被看作是用补码表示的无符号数时,它们所表示的十进制数是什么?(1)D8(2)FF8下列各数为十六进制表示的8位二进制数,请说明当它们被看作是用补码表示的数时,它们所表示的十进制数是什么?(1)4F(2)2B(3)73(4)599当1.8题的4个数被看作是字符的ASCII码时,它们所表示的字符是什么?(1)4F(2)2B(3)73(4)5910请写出下列字符串的ASCII码。Forexample,Thisisanumber3692.答案第1个空101110001B;171H第2个空0011100010000B;710H第3个空111111111111B;0FFFH第4个空0111111111111111B;7FFFH第5个空2DH;45第6个空80H;128第7个空0FFFFH;65535第8个空0FFH;255第9个空11111010B;25D第10个空01011011B;91D第11个空1111111111111110B;65534D第12个空1001000110100B;4660D第13个空F1H第14个空12E3H第15个空0AACFH第16个空35325H第17个空0F7H第18个空9H第19个空9H第20个空0A1H第21个空5FH第22个空0F7H第23个空-40第24个空-1第25个空216第26个空255第27个空8、79第28个空43第29个空115第30个空89第31个空O第32个空+第33个空s第34个空Y第10题466F72206578616D706C652C0A0DForexample,546869732069732061206E756D62657220333639322EThisisanumber3692第二章【课后习题】1在8086微机的输入/输出指令中,I/O端口号通常是由DX寄存器提供的,但有时也可以在指令中直接指定00~FFH的端口号。试问可直接由指令指定的I/O端口数。2有两个16位字1EE5H和2A3CH分别存放在8086微机的存储器的000B0H和000B3H单元中,请用图表示出它们在存储器里的存放情况。38086微机的存储器中存放信息如下图所示。试读出30022H和30024H字节单元的内容,以及30021H和30022H字单元的内容。4在实模式下,段地址和偏移地址为3017:000A的存储单元的物理地址是什么?如果段地址和偏移地址是3015:002A和3010:007A呢?5如果在一个程序开始执行以前(CS)=0A7F0H(如十六进制数的最高位为字母,则应在其前加一个0),(IP)=2B40H,试问该程序的第一个字的物理地址是多少?6在实模式下,存储器中每一段最多可有10000H个字节。如果用调试程序Debug的r命令在终端上显示出当前各寄存器的内容如下,请画出此时存储器分段的示意图,以及条件标志OF、SF、ZF、CF的值。Cdebug-rAX=0000BX=0000CX=0079DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=10E4ES=10F4SS=21F0CS=31FFIP=0100NVUPDIPLNZNAPONC7下列操作可使用哪些寄存器?(1)加法和减法(2)循环计数(3)乘法和除法(4)保存及使用段地址(5)表示运算结果为0(6)将要执行的指令地址8那些寄存器可以用来指示存储器地址?9下面几种说法中唯一正确的是哪一种?A、单独用16位地址线提供的地址可以访问1M字节存储器空间。B、数据段段首址可以是00000~FFFFF中任意一个地址。C、用WS、EDIT等编辑软件可以编写汇编程序。D、堆栈段段首地址可以是FFFE0H。答案:1、答:直接由指令指定的I/O端口数为256个。2、答:3、答:字节单元:(30022H)=ABH,(30024H)=EFH字单元:(30021H)=AB34H,(30022H)=CDABH。4、答:3017:000A的存储单元的物理地址是3017AH,3015:002A的存储单元的物理地址是3017AH,3010:007A的存储单元的物理地址是3017AH。5、答:该程序的第一个字的物理地址是0AAA40H。6、答:条件标志OF、SF、ZF、CF的值依次分别为0、0、0、0。7、答:(1)AX、BX、CX、DX、AH、AL、BH、BL、CH、CL、DH、DL、SP、BP、DI、SI(注意:学生尽量不要用SP参与加减运算)(2)CX(3)DX、AX、AH、AL(4)CS、DS、ES、SS(5)FLAGS(6)IP(7)SS、SP、BP8、答:可以用来指示存储器地址的寄存器有BX、SP、BP、DI、SI、IP、CS、DS、ES、SS。9、答:唯一正确的是D。第三章【课后习题】1试根据以下要求写出相应的汇编语言指令。(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中。(2)用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。(3)用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。(4)用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回该存储单元中。(5)把数0B5H与(AL)相加,并把结果送回AL中。2写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。要求使用以下几种寻址方式:(1)寄存器间接寻址(2)寄存器相对寻址(3)基址变址寻址3现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后AX寄存器的内容。(1)MOVAX,1200H(2)MOVAX,BX(3)MOVAX,[1200H](4)MOVAX,[BX](5)MOVAX,1100[BX](6)MOVAX,[BX][SI](7)MOVAX,1100[BX][SI]4设当前数据段寄存器的内容为1B00H,在数据段的偏移地址2000H单元内,含有一个内容为0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列,并画图表示出来。5在0624单元内有一条二字节JMPSHORTOBJ指令,如其中位移量为(1)27H,(2)6BH,(3)0C6H,试问转向地址OBJ的值是多少?6在ARRAY数组中依次存储了七个字数据,紧接着是名为ZERO的字单元,表示如下:ARRAYDW23,36,2,100,32000,54,0ZERODW?(1)如果BX包含数组ARRAY的初始地址,请编写指令将数据0传送给ZERO单元。(2)如果BX包含数据0在数组中的位移量,请编写指令将数据0传送给ZERO单元。7如TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,试问以下两条指令执行完后,AX寄存器的内容是什么?(1)MOVAX,TABLE(2)LEAAX,TABLE8执行下列指令后,AX寄存器中的内容是什么?TABLEDW10,20,30,40,50ENTRYDW3…MOVBX,OFFSETTABLEADDBX,ENTRYMOVAX,[BX]9下列ASCII码串(包括空格符)依次存储在起始地址为CSTRING的字节单元中:CSTRINGDB'BASEDADDRESSING'请编写指令将字符串中的第1个和第7个字符传送给DX寄存器。10已知堆栈段寄存器SS的内容是0FFA0H,堆栈指针寄存器SP的内容是00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令。试画出堆栈区和SP的内容变化过程示意图。11设(DS)=1B00H,(ES)=2B00H,有关存储单元的内容如图所示。请写出两条指令把字变量X装入AX寄存器。12求出以下各十六进制数与十六进制数62A0之和,并根据结果设置标志位SF、ZF、CF和OF的值。(1)1234(2)4321(3)CFA0(4)9D6013求出以下各十六进制数与十六进制数4AE0的差值,并根据结果设置标志位SF、ZF、CF和OF的值。(1)1234(2)5D90(3)9090(4)EA0414写出执行以下计算的指令序列,其中X、Y、Z、R、W均为存放16位带符号数单元的地址。(1)ZW+(Z-X)(2)ZW-(X+6)-(R+9)(3)Z(W*X)/(Y+6),R余数15写出对存放在DX和AX中的双字长数求补的指令序列。16试编写一个程序求出双字长数的绝对值。双字长数在A和A+2单元中,结果存放在B和B+2单元中。17写出完成以下操作的程序段。假设各变量的值均为用压缩BCD码表示的二位十进制数。(1)UV+(S-6)(2)U(X+W)-(Z-U)18假设(BX)=0E3H,变量VALUE中存放的内容为79H,确定下列各条指令单独执行后BX的值。(1)XORBX,VALUE(2)ANDBX,VALUE(3)ORBX,VALUE(4)XORBX,0FFH(5)ANDBX,0(6)TESTBX,01H19试分析下面的程序段完成什么功能?MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL20试写出程序段把DX,AX中的双字右移四位。21假设程序中数据定义如下:NAMEDB30DUP(?)ADDRDB9DUP(?)ARRAYDB132DUP(?)分别编写下列程序段:(1)用空格符清除ARRAY域。(2)在ADDR中查找第一个'*'。(3)如果NAME域中全是空格符时,填入'$'。(4)把NAME移到ARRAY的前30个字节中,把ADDR移到ARRAY的后9个字节中。22试分析下列程序段:ADDAX,BXJNOL1JNCL2SUBAX,BXJNCL3JNOL4JMPSHORTL5如果AX和BX的内容给定如下:AXBX(1)147B80DC(2)B56854B7(3)42C8608D(4)D0239FD0(5)94B7B568问该程序执行完后,程序转向哪里?23假设X和X+2单元的内容为双精度数p,Y和Y+2单元的内容为双精度数q,X和Y为低位字,试说明下列程序段做什么工作?MOVDX,X+2MOVAX,XADDAX,XADCDX,X+2CMPDX,Y+2JLL2JGL1CMPAX,YJBEL2L1:MOVAX,1JMPSHORTEXITL2:MOVAX,2EXIT:INT20H24在下列程序的括号中分别填入如下指令:(1)LOOPL20(2)LOOPEL20(3)LOOPNEL20试说明在三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器的内容分别是什么?TITLEEXLOOP.COMCODESGSEGMENTASSUMECS:CODESG,DS:CODESG,SS:CODESGORG100H
本文标题:汇编语言考试复习资料
链接地址:https://www.777doc.com/doc-2368372 .html