《《汇编语言程序设计》综合练习题-附答案.docx》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》综合练习题-附答案.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言综合练习题一、填空题1、地址总线的位数决定了 的最大容量。2、CS内容为1000H, IP内容为8932H,那么物理地址3、在计算机中三总线是指 总线、总线和控制总线。4、8086CPU具有20条地址线可寻址 存储单元。5、8086中将物理地址分为两局部 和 o6、在乘法指令MULBX中,被乘数隐含指 o7 .在计算机中处理字符时,常采用 码。8 .在计算机中三总线是指 总线、总线和 总线。9 .程序流向的控制和转移,主要是通过改变 和 的值。10 .汇编语言程序的开发,主要经过 、和, 直到生成完全正确的可执行文件为止。11 .汇编语言源程序的扩展名为 O.假设字节单元(06925H
2、)=12H, (06926H)=45H, (06927H)=78H,那么字单元 (06925H)=,字单元(06926H)二。12 .“先执行后判断”的循环程序结构中,循环体执行的次数最少是 j.在指令MOV AX,0执行后,CPU状态标志位ZF的取值。13 .PC/XT加电复位后执行的第一条指令的物理地址是,该地址 属于 O.当使用串比拟指令CMPSB寻找两数据块中相同字节数据时,应使用重 复前缀 o14 .8086的代码段寄存器(CS) =2000H,那么代码段可寻址的物理地址空 间范围为 O.假设(CS) =4200H,物理转移地址为4A230H,当CS的内容被设定为7900H 时,那么
3、物理转移地址为 o15 .堆栈是内存中遵循 规那么的一个专用区域;在8086/8088系统中,设(SP) =0034H,如果用栈操作指令存入7个数据,那么(SP) =, 假设又用栈操作指令取出2个数据,那么(SP) =o16 .CPU的状态寄存器中,标志SF和OF的含义是 和 o假设当减法运算X-Y后,(SF) =1、(OF)=1,说明两者比拟的结果是 o二、选择题()1、下面指令中哪一条是正确的:A MOV WORD PTR DI, ALB. MOV AL, 8001在数据段有一个由带符号数组成的字节数组,首地址为BLOOK,长度为 COUNT,要求将奇数、偶数分开存放,奇数存在以P-DAT
4、A为首地址的存 储区,偶数存在以M-DATA为首地址的存储区。2、试编写一程序段,计算S=l+2+3+30,并将结果存于AX中。3下面的程序是把DA数据区的书09转换为对应的ASCII码,完善本程 序。数据段:DA DB 00H,01 H,03H,04H,05H,06H,07H,08H,09HASCI DB 10DUP(?)CUNT=ASCI-DA代码段:LEA SI,DALEA DI,ASCILOP:MOV AL,SI(2)MOV DI,ALINC SIINC DILOOPLOP4试编写一程序段,要求变量X、Y中为一任意有符号字节数。假设X为负数, 那么将其取补码,否那么和Y变量相加,其和放
5、在AH中。5、一个字数组从内存TAB单元开始存放,长度为N。要求统计该数组 中。的个数,并将结果存入COUNT单元。一填空.系统内存1 .18932H.数据、地址、2 .系统内存.段地址、偏移地址6、AX8、数据、地址、控制 10、编辑、汇编、链接、 12、4512H;7845H14、没有影响16、REPNZ 18.81230H20 .符号标志,溢出标志,7、ASCII 码9、CS、IP调试11、.asm13、115、FFFFOH,ROM17、20000H-2FFFFH19.后进先出,0026H, 002AHXY7、ASCII 码9、CS、IP调试11、.asm13、115、FFFFOH,RO
6、M17、20000H-2FFFFH19.后进先出,0026H, 002AHXY1、D 2、A 3、A4、A5、C 6、A7、A8、C 9、C 1。、A11 A12.A 13 A14. A20.B 21.B22.C23.A15.B16D24.A25.A17、C 18、C 19.B二、选择题三、判断V x x x x x x(1) J (2) x (3) x (4) J (5) x四、简答题1、1、基址变址寻址DS2、间接寻址ES3、直接寻址SS2、BX=220CHAX=E896HCF=1OF=0 ZF=03、NUMS分配了 180个字节; VAR分配了 15个字节4、源操作采用基址+变址寻址方式
7、;是字节操作MOVAL, INFBP+SI访问的是堆栈段MOV AL, ES: INFBP+SI访问的是附加段,实现了段超越5、状态标志表示算术运算或逻辑运算执行之后,运算结果的状态,这种状 态将作为一种条件,影响后面的操作。控制标志是人为设置的,指令系统 中有专门的指令用于控制标志的设置或清除,每个控制标志都对某一特定的 功能起控制作用.五、写出以下程序段执行后,相关器件中的结果。1、 AL=05H CF=1 AF=1AX=1234HBX=3456HCX=3456H SP=0FEH2、 AX= 1EOOHCOUNT= 12BX=0100HDL=10H5AL=0FFFFHCF=16 AL= 0
8、2H, BL=85H , CF=17 AL=90H CF=1, SF=1, OF=08 AL=0FFFFHCF=19、(2000H)=39H ;(2001H)=00H将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD 码,并存入(2000H)单元,03(2001H)10、37H ; LAB211、 0 ;1009H ;0对数据段内1000H1008H单元置数,依次送入1, 2, 4, 8, 16, 32,64, 128, 0共九个六、写出程序段的功能1 将 AL*10另起一行显示 HOW DO YOU DO?OK!2 A2 为 14 A3 为 20七、编程填空
9、题1、ASSUME 2、DS 3、CX 4、WORD PTRSI 5、BL6、NEXT 7、 28、4CH 9、ENDS 10、BGN八、编程1, START: LEA1, START: LEABX, BLOOKMOV SL 0MOV SL 0MOV DL 0MOV CX, COUNTGOON: MOV AL, BXTEST AL, 01HJNZ MIUSMOV M-DATA, ALINC SIJMP NEXTMIUS: MOV P-DATADI, ALINC DINEXT: INC BXLOOP GOON2 MOV SL 1MOV AX, 0MOV CX, 30Al: ADD AX, SII
10、NC SILOOP Al3、(1) MOV CX,CUNT(2) ADDAL,30H4 MOV AL, X MOV AH, Y CMP AL, 0 JL Al ADD AH, AL JMP EXITAl: NEG AL MOV AH, AL EXIT: HLT5,LEA BX, TABMOV CX, NMOV DX, 0LOP: MOV AX, BXCMP AX, 0JNE NEXTINC DXNEXT: ADD BX, 2LOOPLOPMOV COUNT, DXC. MOV BP, 12HD. DEC SI()2、用于定义常数、变量的内存空间分配和定位的是A伪指令B机器指令C宏指令D微指令(
11、)3、下面指令中哪一条是正确的:A. MOV BX, AH B. IMUL 10C. MOV BX, 12 D. INC SI()4、当一存储单元的段地址为2000H,偏移地址为3000H,用符号方法表示为AC)AC)A C )7、A.2000: 30003000: 20005、指令 JMP WORD PTR段内直接寻址段内间接寻址6、存储器ROM的特点是可随机读 ,不可随机写可随机写 ,不可随机读下面指令中哪一条是正确的:MOV DI, ALC. MOV AX, 12B. MUL 10D. INC DIB 23000HD 32000HBETA的寻址方式为段间直接寻址段间间接寻址B 可随机读D
12、 不可读写)8、CPU可直接访问的操作数不可能在:A寄存器C硬盘B指令D内存)9、八位二进制补码10000000B表示:A、-127 B、+0C、-128 D、-0()10、用于定义常数、变量的内存空间分配和定位的是A伪指令B机器指令C宏指令D微指令()11、用指令的助记符,符号地址,标号和伪指令,宏指令以及规定的 格式书写程序的语言称为:A.汇编语言B.高级语言C.机器语言 D.低级语言()12、计算机存储信息的基本单位是一个 位。A.二进制 B.八进制 C.十进制 D.十六进制()13、设(DS)=8225H, (DI)=3942H,指令 MOV AXJDI中源操作数的物 理地址是:A.
13、85B92H B. 86192H C. BB690H D. 12169H()14、指令指针寄存器是:A. IPB. SP C. BP D. PSW()15.以下寄存器能存放操作数的有效地址的是:A. AX B. BX C. CX D. DX()16.以下程序执行后,AX寄存器的值为:Al DW 10DUP(2 DUP (2,1,0),3)MOVAX,Al+8A) 2B)3C)0D) 1()17.从数据在存储器中排列的顺序看,伪指令:DATADW 1,2J3411234H 相当于()。A) DATADB 1,2,34H,1234HB) DATADB 1,2,34H,12H,34HC) DATA
14、DB 01,00,02,00,34H,33H,34H, 12HD) DATADB 01,00,02,00,34H,33H,12H,34H()18、对于给定的如下数据定义,符号R1的值是()oAl DW 1,2,3,AB,C,A2 DB 5 DUP (?)A3 DBORI EQU A3-AlA.12B.18C.16D.14()19.宏指令与子程序的相同之处为()A.宏指令的目标代码与子程序的目标代码都是唯一的B.都需要先定义,后调用C.执行宏指令的目标代码时与执行子程序时一样,需要增加如保护现 场、恢复现场一类的额外开销D.宏指令的目标代码与子程序的目标代码都不是唯一的()20.在某个汇编语言程
15、序中需要屡次执行某个独立功能的程序段,那么 用宏指令实现比用子程序实现()A.占内存空间小,但速度慢B.占内存空间大,但速度快C.不仅速度快,而且占内存空间小D.速度慢()21.寻址方式指出了操作数的位置,一般来说A.立即寻址给出了操作数地址B.寄存器寻址的操作数在寄存器内,而指令给出了寄存器C.直接寻址直接给出了操作数本身D.间接寻址给出了内存数本身()22.8086CPU在进行无符号数比拟时,应根据 标志位来判别。A.CF 和 OFB.CF 和 PFC.CF 和 ZFD.ZF 和 OF()23.设(SP) =0200H,(SS)=4000H,执行PUSHBX指令后,栈顶的物理地 址是多少。
16、B.40202HA.401FEHC.01FEHD.0202H.设数据段中有一定义:ABCDD 12345678H,指令:MOV AX,WORD PTR ABC+l执行后AX的值是多少。A.3456HB.5634HC.56HD.34H.设AX中存放一有符号数,要执行(AX) /2运算应使用指令oA.SAR AX,1B.SHR AXJC.ROR AX,1D.RCR AX J三、判断题1、堆栈是以“后进先出”方式工作的存储空间。()2、两个二进制数相加如产生了进位,必然有溢出。()3、8086在定义逻辑段时,每一个段的大小一样大。()4、8086指令系统,进行乘法运算时,目的操作数必须在AX中。()
17、5、在存储器中两个存储单元的有效地址不可能相同。()6、伪指令“EQU”与功能相同,没有区别。()7、设计程序采用循环结构时,必须知道循环的次数。()判断以下指令的对错4SI(CX(BX(PTRBX(4SI(CX(BX(PTRBX() ) ) ) )LEA SI, MOV AL, XCHG SI, PUSH WORDPOP CS四、简答题1写出以下指令中源操作数的寻址方式并指出其所在的逻辑段1、MOV2、MOV3、ADDAX , TABBXSIAX , ES: BXBX, SS: 2CH2、已有 AX=E896H, BX=3976H,假设执行 ADD BX, AX 指令, 那么结果BX, AX
18、,标志位CF, OF, ZF各为何值?3、有变量定义的伪指令如下:NUMS DW 18 DUP(4 DUP(5),23)VAR DB HOW ARE YOU ! ODH, OAH试问:NUMS、VAR变量各分配了多少存储字节?4、已有 MOV AL, INFBP+SI与 MOV AL, ES: INFBP+SI两条指令, 试问:其源操作数采用何种寻址方式?是字或是字节操作?两条指令有何区 别?5、8086CPU的FLAG寄存器中,状态标志和控制标志有何不同?程序中是 怎样利用这两类标志的?五、写出以下程序段执行后,相关器件中的结果。MOVAX, 0007HMOV BL, 08HADD AL,
19、BL结果:(AL) = CF二AAA2 设(SP) =0109H, (SS) =2300HMOV AX, 1234HMOV BX, 3456HMOV CX, 789AHPUSH AXPUSH BXPOP CX结果:(AX) = (BX) = (CX) =3 TABLE DW 10H, 20H, 30H, 40H, 50HENTRY DW 3COUNT EQU $-TABLEMOV BX, OFFSET TABLEADD BX, ENTRYMOV AX ,BXAX = COUNT=4 执行以下指令后ORG 01 OOHARY1 DB 10H, 20HARY2 DW 3000HMOV BX, OF
20、FSET ARY1MOV DL, BXMOV AX, WORD PTR BX+1HLTBX二 , DL= 5 MOVMOVSAR 结果:BX二5 MOVMOVSAR 结果:BX二BX, OFFFEHCL,2 BX,CLCF二6 执行以下指令后MOV BL,85HMOV AL,17H ADD AL,BL DAAAL二6 执行以下指令后MOV BL,85HMOV AL,17H ADD AL,BL DAAAL二BL二CF二MOV AL , 0C8HADDADDAL , 0C8HAL二 CF= SF= OFtAL二 CF= SF= OFtMOVMOVBX, OFFFEHMOVCL,2SARBX,CL结
21、果:BX=CF=9源程序如下:MOV CL, 4MOV AX, 2000HSHL AL, CL SHR AX, CLMOV 2000H, AX试问:假设程序执行前,数据段内(2000H)=09H, (2001H)=03H,那么 执行后有(2000H)=,(2001 H)=o本程序段的功能 O10、源程序如下MOV AL, 0B7HAND AL, ODDHXOR AL, 81HOR AL, 33HJP LAB 1JMP LAB2试问:执行程序后AL=;程序将转到哪一个地址执行:11、源程序如下:MOV CX, 9MOV AL, 01HMOV SI, 1000HNEXT: MOV SI, INCN
22、EXT: MOV SI, INCALSISHL AL, 1LOOP NEXT试问:执行本程序后有:AL=; SI=; CX=本程序的功能是。六、写出程序段的功能SALAL,1MOVBL,ALSALAL,1SALAL,1ADD AL, BL功能:DATE SEGMENT USE 16MEI DB ODH, OAH, HOW DO YOU DO? $DATE ENDS代码段:MOV AH, 9MOV DX, OFFSET MEIINT21HMOV AH, 9LEA DX, ME2INT 21H功能:3 VECTORSEGMENTORG 10Al DW 10, 11 A2 DW 12A2的有效地址为
23、A3的有效ORG 20 A3 DW 1234H VECTOR ENDS 地址为 2 PUSH AX PUSH BX POP AX POP BX 功能: 七、编程填空题1下面程序功能为:统计DA数据区中正数,负数的个数。请分析程序,并在编号(1) (10)处填入适当内容。源程序:DATA SEGMENTDA DW -1, 0, 3, 02, 4, 8, OAH, OFEH, 87COUNT DB ($-DA) /2CNT DB ?DB ?DB ?DATA ENDSSTACK SEGMENTDW 20H DUP (?)STACK ENDSCODE SEGMENT(1)CS: CODE, DS: DATA, SS: STACKBGN: MOV AX, DATAMOV (2), AXMOV AX, 0MOV BL, 0LEAMOVLOP: CMPJZSI, DA(3) ZERO,COUNT,0PLUS(5)AHNEXTJNSINCJMPZERO: INCJMPPLUS: INCNEXT: ADDLOOPPLUS: INCNEXT: ADDLOOPALSI, (7)LOPMOV CNT, ALMOVCNT+1, AHMOVCNT+2, BLMOV AH, _(8)INT 21HCODE _(9)END (10)
限制150内