汇编语言第,郑晓薇汇编语言习题测验题答案.doc

上传人:s****u 文档编号:12809129 上传时间:2020-05-25 格式:DOC 页数:48 大小:325KB
返回 下载 相关 举报
汇编语言第,郑晓薇汇编语言习题测验题答案.doc_第1页
第1页 / 共48页
汇编语言第,郑晓薇汇编语言习题测验题答案.doc_第2页
第2页 / 共48页
汇编语言第,郑晓薇汇编语言习题测验题答案.doc_第3页
第3页 / 共48页
点击查看更多>>
资源描述
汇编语言(第2版),郑晓薇汇编语言各章习题、测试题答案习题一1.1 分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数11010011011101111000001100101111101010101.2 十六进制运算1A52H+4438H3967H2D81H37H12H1250H4H1.3 将十进制数变为8位补码并做运算(结果用二进制、十六进制、十进制表示)29+537324-66+82-102151.4 用压缩BCD码计算(结果用二进制、BCD码、十进制表示)29+53732466+18132+751.5 符号位扩展(字节扩展为字,字扩展为双字)20A3H 94H3456H 7FH EC00H1.6 若机器字长为16位,其无符号数表示范围是多少?带符号数表示范围是多少?分别用十进制和十六进制表示。1.7 写出下列十六进制数所能代表的数值或编码:(1)38H(2)FFH(3)5AH(4)0DH1.8将下列十进制数分别转换为二进制、十六进制、二进制补码、压缩BCD码和ASCII码:(1)108(2)46(3)-15(4)2541.9写出下列算式的8位二进制运算结果,标志位CF、SF、ZF、OF分别是什么值?(1)56+63(2)83-45(3)-74+29(4)-12-371.10 查表,指出ASCII码0DH、0AH、07H、1BH、20H、60H、50H、70H对应的控制字符。测验一单选题:1 已知X=76,则X补= 。 A. 76H B. 4CH C.0B4H D.0CCH2 已知X补=80H,则X= 。 A. 80H B. 0 C. 0FFH D. -80H3 已知X补=98H,则X补/2= 。 A. 0CCH B.4CH C. 49H D. 31H4 已知X=78,Y=-83,则X+Y补= 。 A. 0F5H B. 0A1H C. 0FBH D. 65H5 将124转换成十六进制数的结果是 A. 7CH B. 7DH C. 7EH D. 7BH6 将93H看成一个压缩BCD码,其结果是 A. 10010101 B. 10010011 C.10000011 D.100000017 45转换成二进制数是 A.10101101 B.00111101 C. 00101101 D. 1001110186CH转换成十进制数是 A. 118 B. 108 C. 48 D. 689 将93H扩展为字的结果是 A. FF93H B. 0093H C. 1193H D. 1093H1056的压缩BCD码是 A. 38H B. 56H C. 0506H D. 3536H 11ASCII中的47H表示的字符是 A. “7” B. “G” C. “g” D. “E”12十进制数-128的8位二进制数的补码为 A. 11111110 B. 01111111 C. 10000000 D. 1000000113下列为补码表示,其中真值最大的是 A. 10001000 B.11111111 C.00000000 D.0000000114十六进制数88H,可表示成下面几种形式,请找出错误的表示 A. 无符号十进制数136 B. 带符号十进制数-120 C. 压缩BCD码十进制数88 D. 8位二进制数-8的补码15计算机对字符、符号采用统一的二进制编码。其编码采用的是 A. BCD码 B. 二进制码 C.ASCII D. 十六进制码第一章 参考答案习题一答案:1.1无符号数: 11010011=211=D3H,01110111=119=77H,10000011=131=83H,00101111=47=2FH,10101010=170=AAH 带符号数:11010011= -45=D3H,01110111=+119=77H,10000011= -125=83H,00101111=+47=2FH,10101010= -86=AAH1.2 5E8AH,0BE6H,3DEH,4940H1.3 00011101+00110101=01010010=52H=8201001001+11101000=00110001=31H=4910111110+01010010=00010000=10H=1610011010+11110001=10001011=8BH= -1171.4 00101001+01010011=01111100+00000110=10000010=82H=820111001100100100=0100111100000110=01001001=49H=4901100110+00011000=01111110+00000110=10000100=84H=840000000100110010+01110101=0000000110100111+00000110=0000001000000111=0207H=2071.5 000020A3H,FF94H,00003456H,007FH,FFFFEC00H1.6无符号数:065535,0000HFFFFH;带符号数:-32768+32767,8000H7FFFH1.7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码1.8(1) 108=01101100B=6CH,补码01101100B,压缩BCD码0000000100001000,ASCII码313038H(2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H(3) 15=11110001B=F1H,补码11110001B,ASCII码2D3135H(4) 254=0000000011111110B=00FEH,补码0000000011111110B,压缩BCD码0000001001010100,ASCII码323534H1.9(1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=0,SF=0,ZF=0,OF=0(3) -74+29=11010011B,CF=0,SF=1,ZF=0,OF=0(4) -9237=01111111B,CF=1,SF=0,ZF=0,OF=11.10 回车、换行、响铃、ESC键、空格键、P、p测验一答案:15 BDACA 610 BCBAB 1115 BCDDC习题二2.1 写出冯诺依曼计算机的基本特点。2.2 如何解决内存速度与CPU速度不匹配问题。2.3 计算机总线的分类与作用。2.4 简述8086CPU寄存器的分组及各自的作用。2.5 标志寄存器中都有哪些标志位与计算结果有关?2.6 简述逻辑地址与物理地址的概念,两者的关系。2.7 存储器为什么要分段?如何分段。2.8 8086系统把存储器分为哪四种类型的段?各自的特点是什么。2.9 8086CPU的地址线为20根,寻址空间为1MB。最少可划分为多少个逻辑段?最多呢?2.10 在四种类型的段中通常使用哪些寄存器表示逻辑地址?2.11 字节单元和字单元如何区分?若给出一个地址,如何知道要访问的是字节单元还是字单元?2.12 偶地址单元和奇地址单元在保存数据上有区别吗?2.13 有一个32K字节的存储区,首地址是3302:5AC8H,写出其首单元和末单元的物理地址。2.14 什么是有效地址?如何获得有效地址。2.15 存储单元地址和内容表示如下,请画出存储单元存放形式。(1) (1280AH)=3456H(2) (20021H)=4DH(3) (33450H)=37A520D1H2.16 根据逻辑地址计算出物理地址,并解释逻辑地址与物理地址的对应关系。(1) 2389:3DE9H(2) 1230:EC92H(3)14D9:C202H2.17 给出段地址和偏移地址如下,计算出对应的物理地址。(CS)=54C3H,(ES)=2569H,(DS)=1200H,(SS)=4422H,(BX)=5678H,(SP)=9945H,(IP)=0E54H,(DI)=63B1H2.18 已知堆栈区大小为512字节,栈底单元的物理地址为15230H。将两个字入栈保存后,当前栈指针所指单元的物理地址是多少? 堆栈区中还能保存多少个数据?2.19 写出修改当前数据段200H开始的数据区数据的DEBUG命令。2.20 对当前代码段从100H开始反汇编的DEBUG命令是什么? 2.21 在DEBUG下,要将寄存器CX的值修改为100H,应该执行什么命令?2.22 在DEBUG下,怎样将数据段的0号4号字节单元填入a、b、c、d?测验二单选题:1 在微机系统中分析并控制指令执行的部件是 。A. 寄存器 B. 数据寄存器 C. CPU D. EU2 在计算机的CPU中执行算术逻辑运算的部件是 。A. ALU B. PC C. AL D. AR3 执行指令PUCH CX后堆栈指针SP自动 。A. +2 B. +1 C. -2 D. -14 在标志寄存器中表示溢出的标志是 。A. AF B. CF C. OF D. SF5 对汇编语言源程序进行翻译的程序是 。 A. 连接程序 B. 汇编程序 C. 编译程序 D. 目标程序6 在汇编语言中,能够翻译成二进制代码的指令是 。 A. 汇编指令 B. 伪指令 C. 机器指令 D. 宏指令7 计算机中存储信息的基本单位是一个 位。 A. 二进制 B. 八进制 C. 十进制 D. 十六进制8若计算机字长16位,则无符号整数的范围用十六进制表示为 。 A. 8000H FFFFH B.0000H 7FFFH C. 0000H FFFFH D. 0001H FFFFH 9 在计算机中一个字节由 位二进制数组成。 A. 2 B. 4 C. 8 D. 1610 将高级语言程序翻译成机器语言代码的实用程序是 。 A. 编译程序 B. 汇编程序 C. 解释程序 D.目标程序11 设物理地址(10FF0H)=10H,(10FF1H)=20H,(10FF2H)=30H,从地址10FF1H中取出一个字的内容是 。 A. 1020H B.3020H C.2030H D.2010H12用 指出下一条要执行的指令所在单元的偏移地址。 AIP B SP C通用寄存器 D段寄存器13 代码段寄存器是 。AIP B. SP C. DS D. CS14 某数据段存储单元的偏移地址为2200H31FFH,则其存储空间大小是 。 A2K B.4K C. 8K D. 16K15在8086标志寄存器中,ZF=1表示 。A结果有进位 B. 结果为0 C结果溢出 D. 结果为负16两个操作数运算时,下列哪种结果会发生溢出 。A两个负数相加,结果为负B两个正数相加,结果为负C一正一负相加,结果为负D两个正数相加,结果为正17设有一个双精度数12A034B0H,将它存入双字单元12000H,那么12003H中存放的是 。 AB0H B34H CA0H D12H18堆栈段的逻辑地址由 组成。ADS:BX B.ES:DI CCS:IP D.SS:SP19代码段某单元的逻辑地址为3458:2C92H,其物理地址为 。A37212H B. 36FF2H C.34580H D. 32C92H20物理地址的计算公式是 。A段地址10+偏移地址 B. 偏移地址10+段地址C段地址10H+偏移地址 D. 偏移地址10H+段地址21在8086系统中,数据寄存器组为 。ASI、DI、SP、BP B. AX、BX、CX、DXC. CS、DS、ES、SS D. CF、SF、ZF、OF22在内存中,每一小段的大小为 。 A64KB B. 16KB C.64B D. 16B23查看用户程序中数据段10号存储单元的DEBUG命令是 。 AD DS:A A BD DS:A CD DS:10 10 DD DS:1024在DEBUG下,修改寄存器AX的命令是 。A U AX B R AX CR D A AX25从200H开始反汇编的DEBUG命令是 。AU 200 B. R200 C. D200 D.U测验二答案:15 CACCB 610 AACCA 1115 BADBB 1620 BDDAC 2125 BDABA第二章 参考答案习题二答案:2.9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)2.10 CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP2.11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。2.12 对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。2.13 首单元的物理地址=38AE8H,末单元的物理地址=38AE8H+7FFFH=40AE7H2.16 (1)物理地址=27679H(2) 物理地址=20F92H(3) 物理地址=20F92H (2)和(3)的物理地址是一样的。说明逻辑地址不唯一,多个逻辑地址可对应到同一个物理单元上。2.17 代码段CS:IP的物理地址=55A84H堆栈段SS:SP的物理地址=4DB65H数据段DS:BX的物理地址=17678H附加段ES:DI的物理地址=2BA41H2.18 当前栈指针所指单元的物理地址是1522CH。堆栈区中还能保存254个字。2.19 执行E 2002.20 执行U 1002.21 执行R CX,然后输入1002.22 执行E DS:0 a b c d测验二答案:15 CACCB 610 AACCA 1115 BADBB 1620 BDDAC 2125 BDABA习题三3.1名词解释:零地址指令,一地址指令,二地址指令。3.2分别写出与数据有关的7种寻址方式并举例说明。3.3 已知(BX)=1290H,(SI)=348AH,(DI)=2976H,(BP)=6756H,(DS)=2E92H,(ES)=4D82H,(SS)=2030H,请指出下列指令的寻址方式,并求出有效地址EA和物理地址:MOV AX,BXMOV AX,1290HMOV AX,BXMOV AX,DS:1290HMOV AX,BPMOV DIBX,AXMOV ES:SI,AX3.4寄存器间接寻址方式可以使用哪些寄存器作为间址寄存器?3.5 立即寻址方式和寄存器寻址方式的操作数有物理地址吗?3.6 什么是段超越?段超越前缀代表什么?3.7请指出下列指令的错误:MOV AX,CXMOV AL,1200HMOV AL,BXMOV SIDI,AXMOV ES:DX,CXMOV AX,VALUEMOV COUNT,SI3.8根据题目要求,写出相应的汇编指令:(1) 把BX寄存器的值传送给AX(2) 将立即数15送入CL寄存器(3) 用BX寄存器间接寻址方式将存储单元中的字与AX寄存器的值相加,结果在 AX中(4) 把AL中的字节写入用基址变址寻址的存储单元中(5) 用SI寄存器和位移量VALUE的寄存器相对寻址方式,从存储单元中读出一个字送入寄存器AX。(6) 将AX中的数与偏移地址为2000H存储单元的数相减,结果在AX中3.9 写出用下列寻址方式将存储单元X中的第3个字取出, AX与其相加再放入Y单元的指令序列。(1)直接寻址(2)寄存器相对寻址(3)基址变址3.10 在数据寻址方式中,哪种寻址方式的操作数与指令一起存放在代码段?测验三单选题:1 指令MOV AX,DS:1000H,源操作数的寻址方式是 。A立即寻址 B. 直接寻址 C. 寄存器寻址 D. 基址变址寻址2 指令MOV AX,ES:COUNTDI,源操作数的寻址方式是 。A基址变址寻址 B. 立即寻址 C. 寄存器相对寻址 D. 相对基址变址寻址3 指令MOV DX,COUNTBPDI的执行结果是 。 A将COUNT的值传送给DX B. 将COUNT +BP+DI的值传送给DXC. 将数据段中有效地址为COUNT +BP+DI的存储单元的值传送给DXD. 将堆栈段中有效地址为COUNT +BP+DI的存储单元的值传送给DX4 若(AX)=2530H,(BX)=18E6H,MOV BX,AL指令正确的执行结果为 。 ABX寄存器的值为2530H B. BL寄存器的值为30H C. 18E6H单元的值为30H D. 18E6H单元的值为2530H5 若(DS)=1240H,(BX)=8936H,则MOV AX,BX 源操作数的物理地址是 。A1AD36H B. 9B760H C.1AC36H D. 9B76H6 若(SS)=1383H,(DS)=2378H,(SI)=492AH,则ADD AX,SI源操作数的物理地址是= 。A1815AH B. 5CADH C. 6CA2H D. 281AAH7 若(SI)=1310H,(BX)=3213H,(DS)=3593H,则SUB DX,BXSI的有效地址EA为 。A1310H B. 3213H C. 4523H D. 7AB6H8 指令MOV BX,MASKBP,若MASK=3540H,(SS)=1200H,(DS)=1300H,(BP)=1160H,那么有效地址EA为 。A4740H B. 46A0H C. 4840H D. 2460H9 指令MOV AX,COUNTBX完成的操作是 。A. 从存储单元读出一个字送入AX B. 从存储单元读出一个字节送入AX C. 将AX中的一个字写入存储单元D. 将AX中的一个字节写入存储单元10 指令MOV DX,DELTABXSI的源操作数保存在 。A代码段 B. 堆栈段 C. 数据段 D. 附加段11 操作数地址由BX寄存器指出,则它的寻址方式是 。A直接寻址 B. 寄存器寻址 C. 立即寻址 D. 寄存器间接寻址12 指令“MOV ES:BX,AX”中,目的操作数的寻址方式为 。A立即数寻址 B. 寄存器寻址C存储器直接寻址 D. 寄存器间接寻址13 一条指令中目的操作数不允许使用的寻址方式是 。 A寄存器寻址 B. 立即数寻址 C变址寻址 D. 寄存器间接寻址14 下列哪句话是错误的 。A指令的目的操作数和源操作数可以同时使用寄存器间接寻址B. 指令的目的操作数和源操作数可以同时使用寄存器寻址C. 指令的源操作数可以使用寄存器间接寻址D. 指令的目的操作数可以使用寄存器寻址15用直接寻址将AL的内容保存到16号单元,可用 指令。AMOV DS:0016H,AL B. MOV AL, DS:0016H C. MOV DS:0010H,AL D. MOV AL, DS:0010H第三章参考答案习题三答案: 3.3 MOV AX,BX源操作数为寄存器寻址,EA 无,物理地址 无MOV AX,1290H立即寻址,EA 无,物理地址 无MOV AX,BX寄存器间接寻址,EA=1290H, 物理地址=2FBB0HMOV AX,DS:1290H直接寻址,EA=1290H, 物理地址=2FBB0HMOV AX,BP寄存器间接寻址,EA=6756H, 物理地址=26A56HMOV DIBX,AX 目的操作数为基址变址寻址,EA=3C06H, 物理地址=32526HMOV ES:SI,AX寄存器间接寻址,EA=348AH, 物理地址=50CAAH3.7 MOV AX,CX错。CX不能为间址寄存器MOV AL,1200H错。立即数超出8位寄存器范围MOV AL,BX错。两个操作数不匹配MOV SIDI,AX错。两个变址寄存器不能在一起MOV ES:DX,CX错。DX不能为间址寄存器MOV AX,VALUE错。AX不能为间址寄存器MOV COUNT,SI错。两个操作数不能都是存储单元3.8 (1) MOV AX,BX(2) MOV CL,15(3) ADD AX,BX(4) MOV BX+SI,AL(5) MOV AX,VALUESI(6) SUB AX,DS:2000H3.9 (1) ADD AX,X+4 (2) MOV BX,4(3) MOV BX,4 MOV Y,AX ADD AX,XBX MOV SI,OFFSET X MOV Y,AX ADD AX,BX+SI MOV Y,AX3.10 立即寻址方式中操作数(立即数)和指令一起存放在代码段中。测验三答案:15 BCDCA 610 DCBAC 1115 DDBAC习题四4.1 汇编语言程序有什么特点?什么是源程序?4.2 简要说明从源程序到可执行程序的操作过程。4.3 什么是伪指令?汇编指令与伪指令有何区别?写出4种常用的伪指令。4.4 8086指令系统分为哪几类?举例说明算术运算类指令的用法。4.5 在8086汇编语言中,哪些段寄存器可以用MOV指令赋值,哪些段寄存器不允许?4.6 堆栈段寄存器SS和栈指针SP可以修改吗?如何修改?4.7 入栈指令PUSH和出栈指令POP可以保存字节数据吗?要保存的话,如何实现?4.8 有哪些方法可以获得操作数的有效地址?4.9 解释下列伪指令的作用:(1) ASSUME CS:CODE,DS:DATA(2) END START(3) VALUE DW 12,35,-6(4) STRING DB INPUT:(5) MESS DB 5 DUP(?)(6) XX DD 12345678H(7) ORG 0320H(8) CONT EQU 2*3.144.10 根据题目,写出相关伪指令:(1) 定义数据段DATA,并在数据段中定义两个字单元X、Y,初始值都是0(2) 定义一个字符串SRING,保存Computer(3) 定义有100个字节单元的COUNT数组,初始值均为空(4) 用赋值伪指令定义PI为3.14(5) 用类型操作符LABEL将VALUE单元定义为字节型4.11 下列伪指令有错吗?如果有错,请指出错误原因:(1) X1 DB 35H,0,-80(2) X2 DB 35,260,-1(3) X3 DB 1234H(4) X4 DW 100(5) X5 DW 100(?)(6) X6 DD AB4.12 写出下列指令的执行结果:TABLE DB 3,33,33 H(1) MOV AL,TABLE(2) MOV AX,WORD PTR TABLE(3) MOV DX,OFFSET TABLE(4) MOV CL,TABLE+2(5) MOV BX,SEG TABLE(6) MOV BX,TYPE TABLE(7) LEA DX,TABLE4.13 写出指令序列,分别求两个双精度数20125D68H和100349A6H的相加和相减运算。4.14 写出将DX、AX中的32位无符号数减CX中的16位无符号数,结果存放在DX、AX中的指令序列。4.15 写出将extra段的段地址传送给ES寄存器的指令序列。4.16 根据给出的算式,写出指令序列(设X、Y、W为字节型,Z为字型):(1) Z=5(X16)(2) Z=X/4Y(3) Z=8XY/16W2(4) Z= (XY)(XY) X/Y4.17 分析下列程序段执行情况,给出结果:X DB 5,15,30Y DB 22,14,6Z DW ?MOV BX,OFFSET XMOV AL,BXADD AL,YINC BXSUB AL,BXMOV BL,Y+1IMUL BLMOV Z,AX4.18 源程序在汇编过程中,系统是如何获知程序从哪儿开始执行的?4.19 两个数8576H和9988H,分别作减法和加法运算,写出指令及运算结果。运算结果影响哪些标志?4.20 乘法和除法指令对于字和字节操作是如何进行的?4.21 用压缩BCD码实现下列运算:(1) Y1=56+34(2) Y2=12835(3) Y3=68+23454.22 用非压缩BCD码实现下列运算:(1) Z1=78+46(2) Z2=9527(3) Z3=12633(4) Z4=(74+18)/64.23 编程序。从键盘输入一个数字,去掉ASCII码后保存到BUFF单元。4.24 编程序。将键盘输入的小写字母变为大写字母显示在屏幕上。4.25 X和Y都是字节型数据,编写将两数相加的结果显示出来的程序段。4.26 编写程序,建立一个09的平方根表,查表可得某数的平方根。4.27 编写查表程序。建立一个班级姓名表,给出学号,可显示出其姓名。4.28 编程实现公式计算Z=X/4+16Y。4.29 编写程序段,将AL中的数乘以6,与CL相减后再除以3;把商保存到Y单元,余数保存到Y+1单元。4.30 用简化的程序格式编程序,在屏幕的5行12列上显示红底白字的字符串“Come”。测验四单选题:1经过汇编产生的二进制目标文件是 。 A.ASM B.OBJ C.EXE D.MAP2汇编语言源程序是指 。A系统提供的MASM B用户编写的.ASM C汇编生成的.LST D连接生成的.EXE3在汇编期间,为汇编程序提供分段信息的是 。AASSUME伪指令 BSEGMENT伪指令 C标号START DMOV指令4不能用MOV指令赋初值的段寄存器是 。 ADS BES CCS DSS5在COUNT DB 5 这条存储单元定义伪指令中,COUNT称为 。 A助记符 B变量 C符号 D标号6将10个字数据3456H存放在存储单元中的伪指令是 。ADW 10H DUP (3456H) BDW 10 DUP (3456H)CDW 10H DUP (5634H) DDW 10 DUP (5634H)7将字符串”INPUT”保存到存储单元MESS,正确的伪指令是 。AINPUT DB MESS BMESS DB INPUT CINPUT DB “MESS” DMESS DB “INPUT”8若X已经定义为字型,可以用 改变为字节型。ABYTE PTR X BOFFSET X CTYPE X DLABEL X9INC WORD PTR BX指令中的操作数的数据类型是 。A字节 B字 C双字 D四字10ABC DW 1, $+2, 5,7,其中$代表 。A当前的偏移地址值为0 B当前的偏移地址值为1 C当前的偏移地址值为2 D当前的偏移地址值为311如果想让程序从100H开始存放及执行,用指令 。ASTART EQU 100HBORG 100HCEND STARTDMOV START,100H12 可用来指出一条汇编指令所在存储单元的符号地址。A变量 B 数组名 C标号 D偏移量13汇编语言中存储单元的属性不能是 。A字符CHAR型 B字节BYTE型C字WORD型 D双字DWORD型14用指令MOV BX,SEG COUNT指令,可以得到存储单元COUNT的 。A物理地址 B 段地址 C 偏移地址 D 属性 15下列传送指令中,有错误的是 。AMOV AH,BL BMOV DS,AXCMOV CL,DX DMOV SI,9016若AX=1E30H,BX=12E4H则ADD AL,BL的执行结果为AL= ,CF= 。 A14H ,0 B. 24H ,0 C. 14H ,1 D. 24H,117若AX=1240H,CX=9939H,则ADD AX,CX 执行后,AH= 。AABH B. 79H C.AB79H D. 79ABH18若BL=83H,CF=1,则ADC BL,90H执行后,BL= 。A14H B. 15H C. 16H D. 17H19若DX=1010H,BX=0923H则SUB DX,BX的执行结果为 。A168DH B. 06EDH C. F6DDH D. 0087H20从键盘输入一串字符使用DOS功能调用的 。 A1号功能 B2号功能 C9号功能 D10号功能21DOS功能调用中,功能号应写入 寄存器中。AAL BAH CDL DDH 22SP栈指针内容是1200H,执行两条PUSH指令之后,SP的值为 。 A1202H B1204H C11FCH D11FEH 23换码指令XLAT要求给出存储单元的有效地址为 。A(BX)+(AL) B(BX)+(AX) C(BX) D(AL)24显示一个字符的DOS功能调用要求将字符放入 。ADS:DX BDS:BX CBL DDL25获得BUFFER单元有效地址的汇编指令为 。AMOV BX,BUFFER BLEA BX,BUFFERCMOV BX,BUFFER DLDS BX,BUFFER26 下列哪个指令可以把字扩展为双字 。ACBW BCWD CCWB DCDW27 关于字节乘法指令错误的说法是 。 A被乘数隐含在AL中 B乘数和被乘数都是字节型C被乘数隐含在AX中 D乘积是字型28关于字除法错误的说法是 。A16位被除数AX与8位源操作数相除 B32位被除数DX、AX与16位源操作数相除C商在AX寄存器,余数在DX寄存器中 D带符号除法的商和余数都是补码表示的数29非压缩的BCD加法调整指令是 。ADAA BDAS CAAS DAAA30用直接写显存的方法显示字符,把3行1列上的字符及属性输入到显存 单元。A140H+06H, 140H+07H B1E0H+02H, 1E0H+03HC140H+02H, 140H+03H D1E0H+01H, 1E0H+02H测验四答案: 15 BBACB 610 BDABC 1115 BCABC 1620 CAABD 2125 BCADB 2630 BCADB 第四章参考答案习题四答案:4.10 (1) DATA SEGMENTX DW 0Y DW 0 DATA ENDS (2) STRING DB Computer (3) COUNT DB 100 DUP(?) (4) PI EQU 3.14 (5) VALUE LABEL BYTE4.11 (1)对。(2)错。260超出了字节范围。(3)错。X3是字节型,1234H是字型,不匹配。 (4)对。(5)错。缺少DUP。(6)对。4.12 (1)AL=3。(2)AX=2103H。(3)DX=TABLE的偏移地址。(4)CL=33H (5)BX=TABLE的段地址。(6)BX=1。(7)DX= TABLE的偏移地址。4.13MOV DX,2012HMOV AX,5D68HMOV CX,1003HMOV BX,49A6HADD AX,BX (SUB AX,BX)ADC DX,CX(SBB DX,CX)4.14 SUB AX,CXSBB DX,04.15 MOV AX,extraMOV ES,AX4.16(1) MOV AL,16ADD AL,XMOV BL,5IMUL BLMOV Z,AX(2) MOV BL,4MOV AL,XIDIV BLSUB AL,YMOV Z,AX(3) MOV AL,XMOV BL,8IMUL BLMOV DX,AXMOV AH,0MOV AL,YMOV BL,16IDIV BLCBWADD DX,AXMOV AH,0MOV AL,WIMUL ALSUB DX,AXMOV Z,DX(4) MOV AL,XADD AL,YMOV BL,XSUB BL,YMOV AH,0IMUL BLMOV Z,AXMOV AL,XIDIV YCBWSUB Z,AX4.17 Z= (5+22-15)*14= 1684.18 从伪指令END START处获知程序从START标号开始。4.19 (1)减法:(2) 加法:MOV AX,8576HMOV AX,8576HMOV BX,9988HMOV BX,9988HSUB AX,BX ADD AX,BX结果:AX=EBEEH结果:AX=1EFEHCF=1,OF=0,ZF=0,SF=1CF=1,OF=1,ZF=0,SF=04.21(1)MOV AL,56HMOV BL,34HADD AL,BLDAAMOV Y1,AL(2)MOV AX,128HMOV BX,35HSUB AX,BXDASMOV Y2,AL(3)MOV AL,68HMOV BL,23HADD AL,BLMOV BL,45HSUB AL,BLDASMOV Y3,AL4.22(1)MOV AX,0708HMOV BX,0406HADD AL,BLADD AH,BH;不用带进位加AAA;加法调整,含进位调整MOV BX,AXXCHG AH,AL;高4位调整AAAMOV BH,ALMOV Z1,BX;保存十位、各位,百位在CF中(2)MOV AX,0905HMOV BX,0207HSUB AL,BLSUB AH,BH;不用带借位减AAS;减法调整MOV Z2,AX(3)MOV AX,0102HMOV BX,0006HMUL BX;乘法先不用调整MOV BX,0303HSUB AX,BXAAS;减法调整MOV Z3,AX(4)MOV AX,0704HMOV BX,0108HADD AL,BLADD AH,BHAAA;加法调整MOV BL,6AAD;除法调整DIV BLMOV BH,AH;余数保存在BHAND AX,000FHAAA;商调整MOV Z4,AX;保存商4.23 编程序。从键盘输入一个数字,去掉ASCII码后保存到BUFF单元。.model small.data buff db ?.codestart:mov ax,datamov ds,axmov ah,1;键盘输入int 21hsub al,30h;去掉ASCII码mov buff,almov ah,4chint 21hend start4.24 编程序。将键盘输入的小写字母变为大写字母显示在屏幕上。.model small.codestart:mov ah,1;键盘输入int 21hsub al,20h;变为大写mov dl,almov ah,2int 21hmov ah,4chint 21hend start4.25 X和Y都是字节型数据,编写将两数相加的结果显示出来的程序段。.model small.data x db 12h y db 34h.codestart:mov ax,datamov ds,axmov al,xadd al,y;结果为46Hmov ah,al;AH=46Hand al,0fh;AL=06Hmov cl,4rol ah,cl;AH=64Hand ah,0fh;AH=04Hadd ax,3030h;AX=3436Hmov bx,axmov dl,bh;显示4mov ah,2int 21hmov dl,bl;显示6int 21hmov ah,4chint 21hend start4.26 编写程序,建立一个09的平方根表,查表可得某数的平方根。data segment x db 0.000,1.000,1.414,1.732,2.000 db 2.236,2.449,2.646,2.828,3.000 ;建立字符表 y db 5 dup(?);存放查到平方根 u db 3;要查的数data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov al,u;要查的数mov cl,5mul cl ;u*5=15(号单元开始)mov ah,0mov bx,ax;地址保存到bxmov si,0let1:mov al,xbx;取出平方根数字mov ysi,al;存入yinc siinc bxloop let1;循环取出5次mov ah,4chint 21hcode endsend start4.27 编写查表程序。建立一个班级姓名表,给出学号,可显示出其姓名。.model small.datax1 db zhang yan $ ;姓名为10个字符宽度x2 db li li $x3 db wang lan $x4 db zhao xue $x5 db li jiang $ u db 3 ;要查的学号.code start:mov ax,datamov ds,axmov al,u;给出学号mov cl,10mul cl ;u*10=30(号单元开始)mov ah,0mov dx,ax;地址保存到dxmov ah,9 ;9号功能显示字符串int 21hmov ah,4chint 21hend start4.28 编程实现公式计算Z=X/4+16Y。.model small.datax db 4 y db 6z db ?.code start:mov ax,datamov ds,axmov al,x;mov cl,2sar al,cl; X/4mov cl,4mov bl,ysal bl,cl;16Yadd al,bl ;X/4+16Ymov z,almov ah,4chint 21hend start4.29 编写程序段,将AL中的数乘以6,与CL相减后再除以3;把商保存到Y单元,余数保存到Y+1单元。.model small.datay db ?,?.code start:mov ax,datamov ds,axmov al,3;设al=3mov cl,6mul cl;al*6mov cl,4;设cl=4sub al,cl;相减mov bl,3idi
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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