1、第三章8086汇编语言程序格式第三章 8086 汇编语言程序格式练习题34 1 单项选择题1下列选项中不能作为名字项的是( )。A FH BA3 C3B DFADC2下列指令不正确的是( )。AMOV AL ,123 BMOV AL , 123QCMOV AL , 123D DMOV AL ,123H3下列指令不正确的是( )。AMOV BL , OFFSET A BLEA BX, ACMOV BX , OFFSET A DMOV BX ,A4若定义“ BUF DB 1, 2, 3, 4 ”,执行 MOV AL, TYPE BUF 后 AL=()。A0 B1 C2 D35.若定义“ A EQU
2、 100”,执行“ MOV AX , A”后,AX=()。A . A的偏移地址 B . A单元中的内容C100 DA 的段地址6若定义“ B DW 1, 2, 10 DUP (0)”,则该伪指令分配( )字节单元。A 10 B 20 C 22 D 247若定义“ C DD 2, 4”,则该伪指令分配( )个字节单元。A2 B4 C6 D88、伪指令是( )规定的汇编说明符,它在源程序汇编时进行说明。A、DEBUG B、LINK C、MASM D、EDIT9在上机操作过程中, MASM 命令执行后,除了生成一个目标文件外,根据选择还可以生成一个( )文件。A LST B EXE C MAP D
3、ASM10LINK 命令执行后可以生成一个以( )为扩展名的文件。A ASM B EXE C OBJ D COM11 一个段最大可定义( )字节。A 1M B 64K C32K D 16K12若要求一个段的起始位置能被 256 整除的单元开始,在定位方式选项中应选( )。A BYTE B WORD C PARA D PAGE13宏指令与子程序相比,在多次调用时,宏指令调用的目标程序长度比子程序调用的( )。A 相同 B 长 C 短 D 不定14宏指令与子程序相比,子程序调用的执行速度比宏指令的( )。A 相同 B 快 C 慢 D 不定15ASSUME 伪指令说明了汇编程序所定义段与段寄存器的关
4、系,它只影响( )的设定。A 源程序 B. 目标程序 C.汇编程序 D 连接程序16设 A 和 B 为字变量, C 为标号,下列指令中不正确的是( )AMOV AX ,A BMOV AX,BCJNE A D JMP C17代码段中的语句( )表示该段结束。A ASSUME BCODE ENDSCSTART:MOV AX ,DATA DEND START18.过程定义语句以“过程名 PROC”开始,以过程名()结束。A ENDS B ENDP CENDM DEND19.一个段可以放在内存的任何地方,但起始地址应该从一个能被( )整除的单元地址开始A. 16 B. 32 C. 64 D. 1282
5、0.在数据定义语句中,下列描述不正确的是( )A 存放存储单元的地址可以用字节表示B 存放存储单元的地址可以用字表示C.存放存储单元的地址可以用双字表示D 存放存储单元的地址可以用四字表示3. 4. 2 多项选择题1.在 8086汇编语言中,语句的种类有( )。A指令性语句 B 指示性语句 C.汇编语句 D 说明语句2.在下列的选项中,不能作为名字的有( )A. AX B. 3MA C. ABCD D. MOV3.在下列的选项中,作为变量的类型有( )。A 字节 B 字 C 双字 D 近程4在下列的选项中,作为标号的类型有( )。A DB BDD CNEAR D FAR5在运算符 OFFSET
6、后可以是()。A 标号 B 变量 C表达式 D 数字6在指令“ LEA BX , X”中的X可以是()。A 标号 B 变量 C表达式 D 数字7.不能分配内存单元的伪指令语句有( )。A EQU B DW C. = D DD8定义一个段的伪指令语句有( )。ANAME SEGMENTCNAME ENDP9定义一个过程的伪指令语句有(ANAME SEGMENT1汇编语言的语句有指令语句和 ,宏指令是 的另一种形式。2.标号的三个属性是段地址、 和类型。3变量的三个属性是段地址、 和类型。4标号的类型有 和 。5变量的类型有 、 、 、四字(八字节)和十字节。6.等价语句不能重复定义、等号语句 重
7、复定义。7等价语句和等号语句 内存单元。8.语句“ MOV BX , OFFSET A”可用 一条指令代替。9若定义“ A DW 1234H ”,指令“ MOV AL, BYTE PTR A ”执行后,AL=。10.若定义“ B DW 1, 2 , 30 DUP (5)”,则B分配的内存单元数是 字节。11.若定义 C DW AB 则“ MOV AL , BYTE PTR C” 执行后,AL= 。12在程序的操作数项中使用的段名、标号名、变量名和符号名都必须在源程序中先 ,否则汇编程序进行汇编时就会 。13.使用伪指令 和 定义一个段。14 使用伪指令 和 定义一个过程。利用过程定义语句可以把
8、程序分成小段,以便于 、 、调试和修改。15. 伪指令 表示整个程序结束。16. 宏展开就是用宏定义取代源程序中的宏指令。若实元个数大于变元个数,则多余的实元 。若实元个数少于变元个数,则多余的变元用 代替。17汇编语言源程序经 产生目标文件,它 直接在机器上运行,还必须经过 后形成可执行文件。18. 在数据段中使用字符串时,该字符必须用 括起来。当定义含有多个字符的字符串时,只能使用 伪指令。19. 用汇编语言编写的程序称为 ,其扩展名为 。20.在源程序中只要对某一独立功能的程序段进行一次宏定义,就可以 次调用它。3. 4. 4简答题1.按照下列题目要求写出每小题的伪指令。(1)将12H、
9、34H、56H、78H存放在字节变量 A的存储单元中。(2)将12、1638H、0E52H存放在字变量 B的存储单元中。(3)将字符串COMPUTER存放在C变量的存储单元中。(4)将D字节变量的100个单元设置为0。(5)将D的偏移地址存放在 E变量中。2 .设数据段定义如下:DATA SEGMENTBUF1DB2, 3BUF2DW4, 5, 6BUF3DB2, 100 DUP (0)BUF4DBABCDEBUF5DWBUF3BUF6EQU$ BUF3请回答:(1)执行“ MOVAX ,(2)执行“ LEABX,(3)执行“ MOVCX,(4)执行“ MOVAL ,(5)执行“ MOVAX
10、,WORD PTR BUF1 ”后,AX=BUF3”后,BX=BUF4”后,CX=_BUF3+2 ”后,AL=BUF2+1 ”后,AH=DATA ENDS请回答:(1)该数据段占用的内存有多少字节?(2)BUF5单元中的值是多少?(3)BUF6的值是多少?(4)执行“ MOV AL,BUF4+2 ”指令后,AL= _。(5)执行“ MOV AX,WORD PTR BUF1 ”指令后,AX=3 设数据段定义如下:DATAABCDEFDATA请回答:SEGMENTDW 23, 45DW EF= $+5DB 10 DUP (?)EQU $ DDW DENDS(1)该数据段占用的内存有多少字节?(2)
11、 C的值为多少?(3)E的值为多少?(4)执行“ MOV AX , F” 指令后,AX= 。(5)执行“ MOV AL , BYTE PTR B”指令后,AL= 4 设数据段定义如下:DATASEGMENTBUF1DB36H , 3,2BUF2DW1364H,253HBUF3DB30 DUP(ABC )BUF4DW$ BUF3BUF5DB100 DUP (0)DATAENDSDATASEGMENTA1DB10 DUP ()A2DW1234H , 5678H, 341HA3DW$ A2A4DWA2A5DB7, 3, 2DATAENDS5 设数据段定义如下:(5)执行完“ MOV AL(6)执行完
12、“ MOV AL(7)执行完“ MOV BX(8)执行完“ MOV AL7设数据段定义如下:DATA SEGMENTA DW 1, 2, 3B DB ABCDEFC DW ABD DB 12H , 34H , 56HE = $ +5DATA ENDS请回答:(1)用一条指令将B字符串中的字符 E送AL。(2)用一条指令将 D变量中的第2个、第3个字节的内容送 AX。(3)用一条指令将 A变量中的第3个字节送AL。(4) “ MOV AX,C” 执行后,AX= 。(5) “ MOV AL,E” 执行后,AL= 。8按下列要求写出数据段 DATA的相应内容。(1)TAB是09的ASCII码表。(2
13、)STR是字符串变量,字符串为 COMPUTER。(3)BUF是100个空格的缓冲区。(4)COUNT是计算BUF缓冲区中字节数的常量变量。(5)AD是存放TAB的偏移地址变量。(6)D是字节变量,数值为 15H , 2, 39按下列要求写出数据段 DSEG的相应内容。(1)STR是存放字符 ABCDE的字符串变量。(2)D是存放十进制 BCD数据372, 2673, 6852的字变量。(3)BUF是存放10个0的字节缓冲区。(4)E是存放BUF偏移地址和段地址的双字变量。(5)F是常量,其值为5。10简述宏指令与子程序的主要区别。11在操作系统状态下,执行 MASM程序对某一汇编语言源程序进
14、行汇编后,除产生目标文件外,通过对答方式还可以产生对应源程序的另外两个文件。请指出:(1)这两个文件的扩展名是什么?(2)这两个文件的功能是什么?12简述汇编程序对宏调用作宏展开的过程。13设数据段定义如下:DATA SEGMENTADW1, 2BDB3, 4CDBABCDD=$ CEDB3 DUPDATA ENDS请回答:(1)画出该数据段在内存中的分配示意图。(2)变量A、B、C、E的偏移地址各是多少?(3)变量D的值是多少?14设数据段定义如下:DATA SEGMENTBUF1DW123HBUF2DB SIMPLE BUF3DW$+4BUF4EQU$ BUF1DATA ENDS请回答:(
15、1)画出该数据段在内存中的分配示意图。(2) BUF1、BUF2、BUF3的偏移地址各是多少?(3) BUF4的值是多少?(4) “ MOV AL, BUF2+5 ”执行后,AL= 15 设数据段定义如下:DATASEGMENTORG=4AEQU100BDBABC , 2CDW101BDEQUB+4DATAENDS请回答:(1)画出该数据段在内存中的分配示意图。(2) B、C的偏移地址各是多少?(3) “ MOV AX , D”执行后,AX= 。五判断改错题1 设数据段定义如下,判断各语句是否正确,如有错误则改正DATASEGMENTADB123HBDW23, 45678HCDWABCDDDB
16、100 DUP (ABC )EDB($ D) /3DATAEND2 设数据段定义如下:DATASEGMENTBUF1DB2, 3BUF2DW3BUF3DD5BUF4EQU$ BUF1BUF5DBABCDBUF6DWBUF5DATA ENDS 请判断下列指令是否正确,如果有错请改正。1)MOVAX , BUF12)MOVAL , BUF53)MOVAX , BUF44)LEABL ,BUF25)MOVAX , BUF36)MOVBX ,TYPEBUF37)MOVBX ,WORDPTR BUF38)MOVBUF5,AL9)MOVBUF6,BUF210)MOVBX ,BUF63判断下列伪指令是否正确
17、,如果有错请改正。( 1)DATA SEGIIIENDS(2)CODE SEGMENTIIICODE END( 3)MA SEGMENTIIIENDM(4)STACK SEGMENT STACK ( 5) A SEGMENTB DW 1C DB 123HA ENDS( 6)MYNAME SEGMENT PARAIIIMYNAME ENDS 六程序分析题 1分析下列程序,说明程序的功能。DATA SEGMENTADBDB18H,34H,05H,0AH,0CH,11H,06H,09H12H,14HBDB3,4CDB2 DUP(0)DATAENDSCODE SEGMENTASSUME CS:CODE
18、 ,DS:DATA START : MOV AX ,DATAMOVDS, AXLEABX,AMOVCX,2MOVSI,OFFSET BLEADI,CL:MOVAL ,SIXLATMOVDI ,ALINCSIINCDILOOPLMOVAH ,4CHINT21HCODEENDSENDSTART2分析下列程序,说明程序的功能DATASEGMENTTABDB30H,31H,32H,33H,34H,35HDB36H,37H,38H,39HSTRDB3,2,7,6,8COUNTEQU$ STRBUFDB10 DUP( 0)DATAENDSCODE SEGMENTASSUME CS:CODE ,DS:DAT
19、ASTART: MOVAX ,DATAMOVDS, AXLEABX, TABLEADI , BUFMOVCX , COUNTLEASI, STRL:MOVAL ,SIXLATMOVDI ,ALINCSIINCDILOOPLMOVAH ,4CHINT21HCODEENDSENDSTART3分析下列程序,说明程序的功能 DATA SEGMENTADB12,34,56H,0BDB53H,62,31H,0CDB4 DUP( 0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART: MOVAX , DATAMOVDS,AXLEASI,ALEADI,BLEABX,C
20、MOVCX,4CLCL:MOVAL ,SIADCAL ,DIMOVBX ,ALINCSIINCDIINCBXLOOPLMOVAH , 4CHINT21HCODEENDSENDSTART4分析下列程序,说明程序的功能?2 DUP (0)DATA SEGMENTA DWB DWC DWD DWE DWDATA ENDSCODE SEGMENTASSUME CS: CODE,DS: DATASTART :MOVMOVMOVMOVADDADCADDADCMOVDIVAX ,DATA DS,AX AX,A DX,0 AX,B DX,0 AX,C DX,0 CX,D CXMOV E, AXMOV E+2,
21、 DXMOVAH , 4CHINT21HCODE ENDSENDSTART5分析下列程序,说明程序的功能DATASEGMENTADB36HBDB0DH , 0AH , NUM= CDB4 DUP (0 )DATAENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOVAX, DATAMOVDS,AXMOVAL , ALEABX , CMOVCL , 4SHRAL , CLANDAL ,0FHCMPAL,9JNANADDAL ,7N:ADDAL ,30HMOVBX , ALINCBXMOVAL , AANDAL ,0FHCMPAL,9JNAMADDAL ,
22、7M:ADDAL ,30HMOVBX , ALINCBXMOVBYTE PTRBX ,HINCBXMOVBYTE PTRBX ,$LEADX,BMOVAH , 9INT21HMOVAH ,4CHINT21HCODEENDSENDSTART6分析下列程序DATA SGEMENTA DW123H,456H,789HB DB 12H,34H,56H, 78HC DB 10 DUP( 2,3)DATA ENDSCODE SEGMENTASSUME CS: CODE,DS:DATASTART : MOV AX ,DATAMOVDS,AXLEASI, ALEADI , CMOVCX,10L: MOVAL
23、,SIMOVDI ,ALINCSIINCDILOOPLMOVAH , 4CHINT21HCODE ENDSENDSTART请回答: C 的前 5 个字节单元中的内容依次是什么?分析下列程序DATA SEGMENTA DB 83H ,62H,56H,0FAH,67HB DB 0 DATA ENDS CODE SEGMENTASSUME CS:CODE, DS:DATASTART : MOVAX , DATAMOVDS,AXLEABX,AMOVCX,5L: MOVAL , BXCMPAL,100JAEMINCBYTEPTR BM: INCBXLOOPLMOVAH,4CHINT21HCODE END
24、SEND START请回答:(1)该程序完成什么功能?(2)程序运行后, B 中的内容是多少?8分析下列程序。DATA SEGMENTA DB 23HB DB 67HC DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS: DATA START: MOV AX , DATAMOV DS,AXMOV AL ,ACMP AL ,BJGE L XCHG AL ,B MOV A ,ALL : MOV C,AL MOV AH ,4CH INT 21HCODE ENDSEND START 请回答 :( 1)该程序完成什么功能?(2)程序执行后, A、B、C 变量中的值各为多少? 9宏定义语句如下:M MACRO X ,Y ,ZMOV DX ,XMOV AH ,YINT ZENDM宏调用语句如下:M BUF1 ,9,21HM BUF2 ,9,21H请写出上述两条宏调用的宏展开语句。10宏定义语句如下:W MACRO X ,Y,Z LOCAL L LEA BX, XMOV CX, YMOV AX ,0L: ADD AL ,BXADC AH, 0INC BX LOOP L MOV Z, AXENDM请回答:执行“ W BUF100, C”指令后宏调用的程序功能是什么?
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1