《汇编习题(含答案)汇编.pdf》由会员分享,可在线阅读,更多相关《汇编习题(含答案)汇编.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!1 第一章 基本知识 一、单项选择题 1.若十进制数为 132.75,则其十六进制数为(B )A.21.3 B.84.C C.4.6 D.6 2.若补11111,则其十进制真值为(C)A.-31 B.-15 C.-1 D.31 3.已知 X=78,Y=-83 则X+Y补=(C )A.0F5H B.0A1H C.0FBH D.65H 4.已知X补=98H,则X补/2=(A )A.0CCH B.4CH C.49H D.31H 二、填空题 1.(35)10=(23)16。2.(15)10=(1111)2。3
2、.计算机的存储容量 1KB=(1024)Byte。4.计算机的存储容量 1MB=(1024)KB。5.计算机的存储容量 1GB=(1024)MB。第二章 8086 计算机组织 一、单项选择题 1.在微机系统中分析并控制指令执行的部件是(C )A.寄存器 B.数据寄存器 C.CPU D.EU 2.在计算机的 CPU 中执行算术逻辑运算的部件是(A )A.ALU B.PC C.AL D.AR 3.能被计算机直接识别的语言是(C )A.C 语言 B.汇编语言 C.机器语言 D.面向对象语言 4.8086/8088 的存储器组织是将存储器划分为段,可作为段的起始地址的是(B )。A185A2H B.0
3、0020H B01004H D.0AB568H 5.堆栈中当前出栈的存储单元地址是(A )A.SS*10H+SP B.SS*10H+BP C.SS*10+SP D.SS*10+BP 6.标志寄存器中属于控制标志位的是(B )ADF,OF,SF B.DF,IF,TF COF,CF,PF D.AF,OF,SF 7.8086/8088 存储器分段,每个段不超过(D )A64K 个字 B.32K 个字节 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!2 C.1M 个字节 D.64K 个字节 二、填空题 1.假设某个字的值为 1234H,其低位字节地址是
4、20H,高位字节地址是 21H,那么该字的地址是_20H_。2.在 8086/8088 控制寄存器中,_IP_寄存器内容始终指向下一条指令的首地址,此时该指令物理地址计算式是_CS*10H+IP_。3.CPU 的标志寄存器中标志位,可以分为两大类,其中一类成为_状态标志位_,另一类称为_控制标志位_标志位。4.当标志位_CF_=1 时候表示无符号数运算产生溢出。而当标志位_OF_=1 是表示带符号位数运算产生溢出。三.简单题 1.实模式下写出段地址和偏移地址为 1234:2002、1430:0042、FF00:0FFF 的物理地址。答:物理地址=段地址*10H+偏移地址(1)14342H(2)
5、14342H(3)FFFFFH 2.从物理地址为 00100H 开始到 00103H 单元中顺序存放的数据为 12H,34H,56H,78H。请画出数据存放示意图,并回答一下为题:(1)写出地址 00101H 字节单元的内容。(2)写出地址 00102 字单元内容。答:00100H 12H 00101H 34H 00102H 45H 00103H 78H(1)(00101H)字节=34H(2)(00102H)字=7845H 第三章 IBM PC 机的寻址方式和指令系统 一、选择题 1.MOV AX,ES:1000H 源操作数的寻址方式是(B )A.立即寻址 B.直接寻址 C.变址寻址 D.基址
6、寻址 2.MOV AX,ES:COUNTDI 源操作数的寻址方式是(C )A.基址寻址 B.立即寻址 C.变址寻址 D.基址变址寻址 3.MOV DX,COUNTBPDI的源操作数的寻址方式是(D )A.变址寻址 B.基址寻址 C.直接寻址 D.基址变址寻址 4.下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(B )A.AX,BX,CX,DX B.BX,BP,SI,DI C.SP,IP,BP,DX D.CS,DS,ES,SS 5.下列四组寄存器中,属于通用寄存器的是(A )A.AX,BX,CX,DX 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质
7、的文档!3 B.SP,BP,IP C.SI,DI,FLAGS D.上属三者都是 6.指令指针寄存器是(A)A.IP B.SP C.BP DBX 7.指令 MOV BX,MASKBP,若 MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为(B)A.17500H B.16500H C.14500H D.13500H 8.指令 MOV AX,COUNTBX,若 COUNT=0400H,SS=1200H,DS=1000H,BX=5000H,那么物理地址为(C)A.17400H B.17000H C.15400H D.14500H 9.8086/8088 系统中,
8、存储器是分段组织的,存储器物理地址计算式是(B)A.段地址+偏移地址 B.段地址*10H+偏移地址 C.段地址*16H+偏移地址 D.段地址+10H*偏移地址 10.当程序顺序执行时,每取一条指令语句,IP 指针增加的值是(D )。A 1 B2 C3 D由指令长度决定的 11.下列属于合法的指令是(D)AMOV DS,ES BMOV SI,DI CMOV AX,BL DMOV DI,BL 12.下列传送指令中有语法错误的是(A )。A.MOV CS,AX B.MOV DS,AX C.MOV SS,AX D.MOV ES,AX 13.当执行指令 ADD AX,BX 后,若 AX 的内容为 2BA
9、0H,设置的奇偶标志位 PF1,下面的叙述正确的是(D)A.表示结果中含 1 的个数为偶数 B.表示结果中含 1 的个数为奇数 C.表示该数为偶数 D.表示结果中低八位含 1 的个数为偶数 14.下面指令执行后,改变 AL 寄存器内容的指令是(D )。A.TEST AL,02H B.OR AL,AL C.CMP AL,BL D.AND AL,BL 15.与 MOV BX,OFFSET VAR 指令完全等效的指令是(D )。A.MOV BX,VAR B.LDS BX,VAR C.LES BX,VAR D.LEA BX,VAR 16.将 DX 的内容除以 2,正确的指令是(C)。ADIV 2 BD
10、IV DX,2 CSAR DX,1 DSHL DX,1 17.下列数值表达式和地址表达式中,错误的是(D )。AMOV AL,8*14+4 BMOV SI,OFFSET BUF+13 CMOV CX,NUM2-NUM1 DMOV CX,NUM2+NUM1 18.为使 CX=-1 时,转至 MINUS 而编制了一指令序列,其中错误的序列是(C )。A.NC CX JZ MINUS B.SUB CX,OFFFFH JZ MINUS 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!4 C.AND CX,OFFFFH JZ MINUS D.XOR CX,O
11、FFFFH JZ MINUS 19.完成对 CL 寄存器的内容乘以 4 的正确操作是(C)AROL CL,1 BMUL 4 ROL CL,1 CSHL CL,1 SHL CL,1 DMOV CL,2 SHL CL,CL 20.在下列串操作指令中,同时使用源串和目的串地址指针的指令是(D)ASTOSW BLODSW CSCASW DCMPSW 21.AL=0AH,下列指令执行后能使 AL=05H 的是(C)ANOT AL BAND AL,0FH CXOR AL,0FH DOR AL,0FH 22.下面指令执行后,改变 AL 寄存器内容的指令是(D )。A、TEST AL,02H B、OR AL,
12、AL C、CMP AL,BL D、AND AL,BL 23.堆栈指针 SP 的内容是(B)A.栈顶单元内容 B.栈顶单元地址 C.栈底单元内容 D.栈底单元地址 24.执行指令 PUCH CX 后堆栈指针 SP 自动(C)A.+1 B.不操作 C.-2 D.-1 25.指令 ADD ES:DI,AX 和存放在(B)A.寄存器 B.附加段 C.堆栈段 D.代码段 26.将 DX 的内容除以 2,正确的指令是(C)。ADIV 2 BDIV DX,2 CSAR DX,1 DSHL DX,1 27.下列数值表达式和地址表达式中,错误的是(D )。AMOV AL,8*14+4 BMOV SI,OFFSE
13、T BUF+13 CMOV CX,NUM2-NUM1 DMOV CX,NUM2+NUM1 28.为使 CX=-1 时,转至 MINUS 而编制了一指令序列,其中错误的序列是(C )。A.INC CX JZ MINUS B.SUB CX,OFFFFH JZ MINUS C.AND CX,OFFFFH JZ MINUS D.XOR CX,OFFFFH JZ MINUS 29.在下列串操作指令中,同时使用源串和目的串地址指针的指令是(D)ASTOSW BLODSW CSCASW DCMPSW 30.下面指令中,合理而有意义的指令是(D)。A.REP LODSB B.REP SCASB C.REP C
14、MPSB D.REP MOVSB 二、填空题 1.若 DS=0F3EH,SI=2000H,COUNT=0A8H,指令 MOV AX,(SI+COUNT)中,源操作数的有效地址 EA 为_20A8H _,其物理地址为_11488H _。2.如 JMP 指令采用段间间接寻址,那么由 4 个相邻字节单元中存放有转移地址,其中前两个字节存放的是_ IP_,而后两个字节存放的是_ CS_。3.下列指令属于基址加变址寻址方式的是(MOV DX,DS:BPSI)。4.在串操作程序中,通常在重复前缀指令 REPZ 或 REPNZ 后,选用的串操作指令是_ STOS_或_ CMP_才有实际意义。5.如 JMP
15、指令采用段间间接寻址,那么由 4 个相邻字节单元中存放有转移地址,其中前两欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!5 个字节存放的是_ IP_,而后两个字节存放的是_ CS_。6.已知 AX=0FF60H,CF=1 MOV DX,96 XOR DH,0FFH SBB AX,DX 执行上述指令序列后,AX=_0_,CF=_0_。7.设寄存器 AL,BL,CL 中内容均为 76H,XOR AL,0FH AND BL,0FH OR CL,0FH 执行上述指令序列后,AL=_79H _,BL=_06H _CL=_7FH_。8.已知 AX=0A33A
16、H,DX=0F0F0H AND AH,DL XOR AL,DH NEG AH NOT AL 执行上述指令序列后,AH=_60H_,AL=_35H_。9.执行下面指令序列后,结果是(AX=0FF82H )。MOV AL,82H CBW 10.MOV AH,7896H ADD AL,AH 上述指令执行后,标志位 CF 和 OF 的值是(CF=1,OF=0 )。10.设 AL0B4H,BL11H,指令“MUL BL”和指令“IMUL BL”分别执行后 OF,CF 的值为(OF1,CF1)。三.综合题 1.在 debug 下设置(SP)=20H,设置 AX,BX,CX,DX 为不同值,把这四个寄存器内
17、容依次压入堆栈,再从堆栈中依次弹出到 SI、DI、BP、BX 寄存器。写出一段程序实现上述操作,并画出每条入栈指令执行后 SP 和堆栈中数据的变化。答:(1)修改(SP):-r SP SP*:20 AX,BX,CX,DX 相同方式(2)push AX Push BX Push CX Push DX。Pop BX Pop BP Pop DI 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!6 Pop SI 2.测试 AL 寄存器,如果最高位和最低位同时为 0,则转 L0,如果最高位和最低位只有一个为 1,则转 L1,如果最高位和最低位同时为 1,则转
18、 L2,画出流程图,并写出程序段。答:参考 ROL AL,1 AND AL,3 JZ L0 SUB AL,3 JZ L3 JMP L2 第四章 汇编语言程序格式 一选择题 1.下列叙述正确的是(C)。A对两个无符号数进行比较采用 CMP 指令,对两个有符号数比较用 CMPS 指令 B对两个无符号数进行比较采用 CMPS 指令,对两个有符号数比较用 CMP 指令 C对无符号数条件转移采用 JAE/JNB 指令,对有符号数条件转移用 JGE/JNL 指令 D对无符号数条件转移采用 JGE/JNL 指令,对有符号数条件转移用 JAE/JNB 指令 2.源程序结束语句为(C)A.ENDP B.ENDS
19、 C.END MAIN D.END 3.SKY:MOV AL,20H 中操作数为(D)A.MOV B.SKY C.AL 或 20H D.AL 和 20H 4.下列为不合法的标志符的是(B)A.AXYZ B.5SKY C.ATT D.?ABC 5.下列地址表达式正确的是(C)A.BX-SI B.BP-DI C.BX+2 D.BP+BX 6.NEAR 标号的类型值为(B)A.2 B.-1 C.4 D.-2 7.组合类型中本段与其它段无逻辑关系,每段均有自己的基址的组合类型是(A)A.NONE B.PUBLIC C.COMMON D.STACK 8.下面哪一个命令是显示内存单元的内容?(A)A.命令
20、 B.命令 C.命令 D.命令 9.取变量偏移属性的分析运算符是(A)A.OFFSET B.TYPE C.SIZE D.SEG 10.分析运算符 LENGTH 只有用(C)定义的变量才有意义。A.表达式 B.字符串 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!7 C.DUP D.疑问号 11.在段定义中,(B)是默认的定位类型 A.PAGE B.PARA C.WORD D.BYTE 12.定义缓冲区 BUF,保留 100 个字节存储空间的语句是(D)。A.BUF DB 100 B.BUF DW 100 C.BUF DW 100 DUP(?)D.
21、BUF DB 100 DUP(?)13.使计算机执行某种操作的命令是(B)A.伪指令 B.指令 C.标号 D.助记符 14.使用 DOS 系统功能调用时,使用的软中断指令是(b)AINT 21 BINT 10H CINT 16H DINT 21H 二填空题 1.比较两个带符号的数 A、B,当 A=B 时程序转移,测试的条件为(F=1)2.指令 JMP FAR PTR DONE 属于(段间转移直接寻址)。3.一个有 128 个字的数据区,它的起始地址为 12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是(12C59H)。4.在执行 DAA 指令,当高四位 BCD 码校正时产生进位
22、,如要把此进位值送入 AH 中,对这进位值的操作应是(进位值在 CF 中,校正后根据 CF 内容再加在 AH 中)5.执行后使 BX=0 的同时也使 CF=0,OF=0 的指令是(OR BX,BX)第五章 循环与分支程序设计 一、选择题 1.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D)。A、CMP B、SUB C、AND D、MOV 2.测试 BL 寄存器内容是否与数据 4FH 相等,若相等则转 NEXT 处执行,可实现的方法是(B)。A.TEST BL,4FH JZ NEXT B.XOR BL,4FH JZ NEXT C.AND BL,4FH JZ NEX
23、T D.OR BL,4FH JZ NEXT 二、填空题 1.下列程序段将 AX 中值乘以 9,请将程序填写完整(1)_ MOV CL,3(2)_ POP BX ADD AX,BX 答:欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!8(1)PUSH AX (2)SHL AX,CL 2.MOV BL,64H MOV CL,03H XOR AX,AX AGAIN:ADD AL,BL ADC AH,0 DEC CL JNZ AGAIN 问:(1)该程序段完成的功能是:将 AX 内容乘 3 送 BX 中 (2)AX=_012CH_。3.设 AX,BX 中的
24、数一个为正数,一个为负数,下面程序段完成将正数送到 PLW 单元中存放,请将程序中所缺指令语句补上。TEST AX,8000H JE K1 或 JZ K1 MOV PLW,BX JMP DONE K1:MOV PLW,A DONE:4.下面程序段是判断寄存器 AH 和 AL 中第 3 位是相同,如相同,AH 置 0,否则 AH 置全 1。试把空白处填上适当指令。_ XOR AH,AL_ AND AH,08H _ JE ZERO_ MOV AH,OFFH JMP NEXT ZERO:MOV AH,0 NEXT:5.下列程序段求数组 ARRAY 的累加和。请将程序填写完整。ARY DW 45H,6
25、8H,0ABC1H,9600H;共 10 项 COUNT DW 10(1)_ MOV CX,COUNT XOR AX,AX AGAIN:ADD AX,SI ADD SI,2(2)_ 答:(1)LEA SI,AKY (2)LOOP AGAIN 6以 BUF 为首址的字节单元中,存放了 COUNT 个无符号数,下面程序段是找出其中最大数并送入 MAX 单元中。BUF DB 5,6,7,58H,62,45H,127,COUNT EQU$-BUF 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!9 MAX DB?MON BX,OFFSET BUF MOV
26、CX,COUNT-1 MOV AL,BX LOP1:INC BX _ CMP AL,BX_ _ JAE NEXT MOV AL,BX NEXT:DEC CX _ JNZ LOP1_ MOV MAX,AL 三、编程题 1.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。答:BEGIN:MOV AH,1 INT 21H CMP AL,a JB STOP CMP AL,z JA STOP SUB AL,20H MOV DL,AL MOV AH,2 INT 21H JMP BEGIN STOP:RET 2.在给定个数的数中寻找最大值,放至指定的存储单元。参考程序:DATA SEGM
27、ENT BUFFER DB 2,4,3,6,1,5 COUNT DW 6 MAX DB?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,COUNT LEA BX,BUFFER MOV AX,BX INC BX DEC CX AGAIN:CMP AX,BX JGE NEXT 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!10 MOV AX,BX INC BX NEXT:INC BX LOOP AGAIN CODE ENDS END ST
28、ART 第六章 子程序 一编程题 1.主程序从键盘输入两个 4 位的十六进制数 A 和 B,用子程序做十六进制计算 A+B,并显示计算结果。参考:CODES SEGMENT ASSUME CS:CODES START:mov bl,0 mov cx,8 loop1:clc mov ah,1h int 21h cmp al,0 jz rotate stc rotate:rcl bl,1 dec cx jnz loop1 print:neg bl mov dl,0dh mov ah,2h int 21h mov dl,0ah int 21h mov cx,8 clc loop2:rcl bl,1 jnc dis0 mov dl,1 jmp display dis0:mov dl,0 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!11 display:mov ah,2h int 21h dec cx jnz loop2 exit:MOV AH,4CH INT 21H CODES ENDS END START