华中科技大学80X86汇编语言知识程序设计试卷.doc
汇编语言程序设计网络学院模拟试卷一 2004.4班级_ 姓名_ 学号_ 成绩_一、改错题(10分,每题1分,在错误处划线,线下写上正确答案)1. SHRBH, 82. ADDBX, 153. LEAPOINT, BUF4. IN DX, 200 5. PUSH DH6. MUL257. XLATBX, TAB 8. REPNZ MOVSW9. MOVAX, 2SIDI 10. MOVBX, SI二、单选题(20分,每题1分)1MOV指令的特点是_。A影响DFB影响SFC影响CFD不影响标志位2使用寄存器间接寻址方式访问堆栈中某变量时,要选用_寄存器。ABXBBPCSIDSP38086标志寄存器中的三个控制标志是_。AIF、PF、SFBDF、OF、CFCDF、IF、TFDTF、AF、IF4若有符号数运算的结果溢出,则置_为1。AOFBCFCSFDIF5若某存贮器操作数的偏移地址在SI中,访问该操作数应采用_寻址方式。A立即B寄存器C寄存器问址D直接6串操作指令中,目的串的逻辑地址应为_。ADS:SIBDS:DICES:DIDES:SI7不在本模块定义而在本模块中引用的符号称_符号。A公共B局部C自定义D外部8若(CL)= 4,(AX)=0FF0FH,执行语句“ROR AX, CL”后 ,(AX)=_。A0FFFFHB0FFF0HC0F0FFHD0FFFH9已知AL中存放着一个压缩BCD码,为实现AL减1操作,应选用_指令序列。ADEC ALBSBB AL,0CSUB AL,1DSUB AL,1 AAS DAS AAS DAS10要将BL中的8位数据送到1234H端口号的外部设备中去,应选用_指令序列。AOUT 1234H, BLBMOV DX,1234H OUT DX, BL CMOV AL, BLDMOV DX,1234H MOV DX,1234H MOV AL, BL OUT DX,AL OUT AL, DX11已知AX,BX中均为有符号数据,当进行字除法时,应采用_指令序列。AXOR DX,DXBCBWCIDIV BXDCWD DIV BX IDIV BX IDIV BX12要将DX的内容送入堆栈中从当前栈顶起第10个字中,应使用_语句。AMOV 18SP,DXBMOV 18BP,DXCMOV BP,SPDPUSH 18DX MOV 18BP,DX13要将CL中8位有符号数送入SI中去,应采用_。AMOV SI, CLBMOV BYTE PTR SI, CLCMOV CH,ODMOV AL,CL MOV SI, CX CBW MOV SI, AX148086指令系统中的PUSH操作,会对SP自动进行_操作。A减1B加2C减2D加115下列指令执行后,对源、目的操作数均无影响的指令是_。AXCHG AX,BXBCMP AX,BXCSBB AX,BXDMOV AX,BX16用REPE SCASB指令对某字符串进行扫描,若当扫描结束时CX0,则表示_。A在字符串中有一个与(AL)不同的字符B在字符串中找到了第1个与(AL)不同的字符C在字符串中有一个与(AL)相同的字符D在字符串中找到了第1个与(AL)相同的字符17条件转移指令JNLE的转移条件是_。ASF OF= 0,且ZF= 0BSF OF= 1,且ZF= 0CSF OF= 0,且ZF= 1DSF OF= 1,且ZF= 118表示宏定义结束的伪指令是_。AENDMBENDSCENDPDEND19设(SS)= 448AH,(SP)= 450H,执行后,当前栈顶的物理地址=_。A44CE6HB44CECHC44CF4HD44CF2H20下列数据定义伪指令中,_是错误的。ADB 12HBDW 1234HCDB ABCD DDW ABCD 三、填空题(10分,每题1分)1要清除AX中的D1511位,需采用_AND 0FFFH_指令来实现。2已知(AX)= 789AH,问执行指令CBW后,(AX)=_FF9AH_。3使用DOS中2号功能调用时,需先将_要显示的字符的ASCII码_送入DL中。4在MOV AX, 5BX DI中,源操作数采用是_相对基址加变址_寻址方式。5已知在DATA数据段中已定义有变量DUF,AA等,问与中划线语句等效的指令是_。6与MOV AX, OFFSET BUF等效的LEA指令是_LEA AX,BUF_。7与JNL指令等同的指令操作符是_JNB_。8中断类型号为25H的中断服务程序的中断矢量存放在内存 94H _96H 单元中。9主、子程序间参递参数的常用三种方式是_寄存器传递_、约定内存传递_和_堆栈传递_法。10要对DX中的内容求绝对值,在横线上应填入何指令。_AND DX, 7FFFH_ANDDX, DXJNSL1_L1: DATA四、作图及填充题(10分)已知数据段定义如下:DATASEGMENTC1DB 0AH , 2 DUP ( 12 , 1), 7C2DW 0A ,7C3EQU $ C2ORG 20C4DW C2+2DATAENDS1画出数据在主存中的分配图(细化到字节)(5分)2在划线处填上执行结果。 MOVAX,C2-3;(AX)= _ MOVDX, C2+2;(DX)= _ MOVBL,C1+5;(BL)= _ MOVBX,OFFSETC1+3;(BX)= _ MOVCL,C3-4;(CL)= _ TEST BX,80H JNE T JMP NTT:NT: 五、程序分析题(每小题3分,共24分)1已知 BX=0F0FH, 请判别右边程序段执行 后,程序转向_执行。 2设A变量的偏移地址为100ADW5665H, 1234H LEASI, A左边程序段的二条指令执行后(S I) =_LDSBX, A(BX)=_ 3如果在执行以下程序段前堆栈为空栈, . . .SSSP且程序其余处也未用堆栈操作指令。要求: 画出执行完时堆栈变化示意图 CALLPRO1B1: B2: PRO1 PROC PUSHCX PUSHBX POPBX 从子程序能返回到主程序B1处吗?为什么? RET _PRO1 ENDP _ 4已知DS和ES指向同一个段,且当前数据段偏离0000H00FFH的存贮单元中依次存放的内容为00FFH,请回答下列程序段执行后0000H0009H单元中的内容为: _。MOVSI, 0000HMOVDI, 0001HMOVCX, 10CLDREPMOVSW 5 STR1DB COMPUTERNDPASCAXZ SZMDB E MOV AL, SZMLEADI,STR1问左边程序段执行到NEXT处时,MOVCX, 17(CX)=_CLD(ZF)=_REPNESCASBNEXT: 6已知:AX=0D800H, DX=0003H MOVCX, 2L:SHLAX, 1问左边程序段执行后RCLDX, 1 (AX)=_LOOPL (DX)=_7程序段的功能是将数组的最大数送AL,请在各空白处填上一条合适的指令。AADB3,7,32,10,100, NEQU$ AAMOVCX, NMOVDI, OFFSET AAMOVAL, DIBB:INCDI_JAECCMOVAL, DICC:_。8 ADW ?左边程序段为判A、B两字变量是否同为正数。是,置AX为0,否则,置AX为非零。请在各空白处填上一条合适的条件转移指令。(两处不能用同一条条件转移指令。)BDW ? MOVAX, AMOVBX, BXORAX, BX_TESTBX, 8000H_MOVAX, 0NEXT:9读下面程序,回答下列问题:当输入为:ABCD 时,输出什么?_。在程序中的宏指令的;后,写出其宏扩展的形式。当输入字符串为所述,则(BUF1+1)=_。RWMACROA,BMOVAH,ALEADX,BINT21HENDMDATASEGMENTBUF1DB 30, ?, 30 DUP (0)BUF2DB PLEASE INPUT: BUF3DB 0AH, 0DH, $ DATAENDSCODESEGMENTASSUMECS: CODE, DS: DATESTART:MOV AX, DATEMOV DS,AXRW 9, BUF2;RW 10,BUF1;RW9, BUF3;MOVCL,BUF1+1MOVCH, 0MOVSI,CXMOVAH,2LOPA:MOVDL,BUF1+1 SIINT21HDECSILOOPLOPAMOVAH, 4CHINT21HCODEENDSENDSTART若漏写了一条DEC SI指令,程序结束后又显示什么?_。六、设计程序或程序段(26分)1设计将当前数据段偏移地址1000H至3000H 的字存贮单元中全设置为1的程序段。(用二种不同方法) (4分)2设计求某无符号字节变量A的9倍的程序段(结果不超过一无符号字节数的范围)。(用二种不同方法) (4分)3用二种不同的方法设计将DI的高8位与DI的低8位互换的程序段。(用二种方法)(4分)4编写从键盘输入一串字符,从中找出字母A出现的个数,并将此数在屏幕下一行上用十进制数形式显示出来的程序。要求: 结构完整。(3分) 回车换行用宏指令。 (2分) 将AX中16位无符号二进制数十进制数并在屏幕显示可调用已有的子程序PROS。(2分) 画出流程图。(2分) (或子模块PROS) 程序正确。(5分) 汇编语言程序设计网络学院模拟试卷二 2004.4班级_ 姓名_ 学号_ 成绩_一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题中的括号内。每小题1分,共10分)1CPU发出的访问存储器的地址是( )。 A物理地址B偏移地址C逻辑地址D段地址2将高级语言的程序翻译成机器码程序的实用程序是( )。 A编译程序B汇编程序C解释程序D目标程序3DEC BYTE PTR BX 指令中的操作数据类型是( )。 A字B双字C字节D字符4在下列语句中,BUFFER称为( )。 A符号B变量C助记符D标号5串操作指令中,源串操作数的段地址一定在( )寄存器中。 ACSBSSCDSDES6使计算机执行某种基本操作的命令是( )。 A伪指令B指令C标号D助符7将数据5618H存放在存储单元中的伪指令是( )。 ADATA1 DW 1856HBDATA1 DB 18H,56H CDATA1 EQU 5618HDDATA1 DB 18H,00H,56H,00H8若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( )。 A1400HB77F8HC0000HD0FF9计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是( )。 ABCD码B二进制码CASCII码D十六进制码10用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为( )。 A汇编语言B高级语言C机器语言D低级语言二、填空题(每空1分,共20分)1在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是_SCASB,SACSW,SCASD_。2通常所说的计算机系统包括_硬件_和_软件_两大部分。38086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是_DS_、_CS_、_SS_、_ES_。4现有AX=2000H,BX=1200H,DS=3000H,DI=0002H,(31200H)=50H,(3120H)=02H,(31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位ZF、CF的值。 AADDAX,1200H;问AX=_0_H ZF=_1_。 BSUBAX,BX ;问AX=_EE00_H ZF=_0_。 CMOVAX,BX ;问AX=_50H_HCF=_1_。 DNEGWORD PTR 1200H;问(31200H)=_EE00_HCF=_1_,5设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,试计算出下列各种寻址方式下的有效地址,并填入括号中。 A使用D的直接寻址( 0A2B1H ) B使用BX的寄存器间接寻址( 1000H ) C使用BX和D的寄存器相对寻址( B2B1H ) D使用BX、SI和D的相对基址变址寻址( B3B1H ) E使用BX、SI的基址变址寻址( 1100H )三、简答题(共20分)1程序在数据段中定义的数组如下:(4分)ARRAYDBYES ISDB 20DBDO NOT 请指出下列指令是否正确?若不正确,错在哪里?AMOVBX, OFFSET ARRAYMOVAX, BX+8BMOVAX, ARRAYCMOVBX, 2MOVSI, 3MOVAX, ARRAY BXSIDMOVBX, 22MOVSI, 3MOVAX, OFFSET ARRAY BXSIINCAX2如TABLE为数据段中0100单元的符号名,其中存放的内容为0FF00H,试问以下两条指令有什么区别?指令执行后,AX寄存器的内容是什么?(3分)MOVAX,TABLEMOVAX,OFFSET TABLE3对于下面的数据定义,三条MOV指令分别汇编成什么?(3分)TAB1DW 10 DUP(?)TAB2DB 10 DUP(?)TAB3DB 1234MOVAX,LENGTH TAB1MOVBL,LENGTH TAB2MOVCL,LENGTHTAB34子程序的说明文件中应包括哪几方面的内容?(5分)5分别指出下列指令中源操作数的寻址方式:(5分)AMOVSI, 100BMOVCX, DATA SICMOVSI,AXDADDAX, BXDIEPUSHF四、程序分析(每小题5分,共20分)1下列程序段完成什么工作?DAT1DB30DUP(?)DAT2DB10DUP(?)MOVCX,10MOVBX,20MOVSI,0MOVDI,0NEXT:MOVAL,DAT1 BXSIMOVDAT2DI,ALINCSIINCDILOOPNEXT2执行下列指令后,AX寄存器中的内容是什么?STARTDW 10H,20H,30H,40H,50HEE1DW 3MOVBX,OFFSET STARTADDBX,EE1MOVAX,BX3试分析下面程序段的功能是什么?CMPAL,AJCOTHERCMPAL,Z+1JNCOTHERJMPLETTEROTHER:LETTER:4下面程序段执行完以后,AL的内容是什么?MOVBX,00FFHANDBX,0FFFHORBX,0F0FHXORBX,00FFH五、程序设计(每小题10分,共30分)1试编写出把DX、AX中的双字右移四位的程序段。2定义一个数据区,它包含有23H,24H,25H和26H四个字节数据,把这个数据区复制20次,并显示出复制结果。3内存自BUF单元开始的缓冲区连续存放着100个学生的英文分数,编程序统计其中90100,6089,60以下者各有多少人?并把结果连续存放到自RESUT开始的单元中。(要求画出程序流程图,各段定义完整) 汇编语言程序设计网络学院模拟试卷三 2004.4班级_ 姓名_ 学号_ 成绩_一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题中的括号内。每小题1分,共10分)1把若干个模块连接起来成为可执行文件的系统程序是( )。 A汇编程序B连接程序C机器语言程序D源代码程序2使汇编程序执行某种操作的命令是( )。 A变量B指令C伪指令D宏指令3串操作指令中,目的操作数的段地址一定在( )寄存器中。 ACSBSSCDSDES4在下列语句中,AGAIN称为( )。AGAIN:INC SI A符号B助记符C标号D变量5MOV BH, 1000SI,该指令中源操作数采用的寻址方式是( )。 A立即B直接C寄存器相对D寄存器间接6OR AL, AL是( )操作指令。 A异或B加法C右移D逻辑或7DOS系统功能调用中,显示单个字符的系统调用号是( )H。 A01HB02H C08HD09H8使计算机执行某种操作的命令是( )。 A宏指令B指令C伪指令D语句9换码指令的助记符是( )。 AXCHGBLEASCXLATDMOV10计算机能直接识别并执行的语言是( )。 A汇编语言B机器语言C高级语言D低级语言二、填空题(每空1分,共20分)1假设BL=0C5H,CL=2,CF=1,确定下列各条指令独立执行后,BL和CF中的值,并填入括号中。ASHRBL,1;BL=( 53H )CF=( 0 )BSARBL,CL;BL=( 18H )CF=( 1 )CRORBL,1;BL=( 9H )CF=( 0 )DRCLBL,CL;BL=( 3H )CF=( 0 )2现有数据定义伪指令如下,写出对应的数据在存储单元中的存放形式。BUF1DB 01,52HBUF2DW 3 DUP(? ,0)BUF3DW 2 DUP(0,2 DUP(1,2),3)DUF1BUF2BUF33计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是_ASCII_码,称为美国_码。48086/8088CUP中,有二个变址寄存器,分别是_SI_和_DI_,二个指针寄存器,分别是_源变址寄存器_和_目的变址寄存器_。三、简答题(每小题5分,共20分)1请指出下列指令错误原因: AORAX, CXBADDSI, BXDICJMPBYTE PTR LOOPSDSARAX, 4ERCLDX2A下面两个语句有何区别?X1EQU1000HX2=1000HB下面的程序段有错吗?若有,请指出错误。CRAYPROCPUSHAXADDAX, BXRETCRAY ENDP3假设程序中的数据定义如下:ARRAY1DW ?ARRAY2DB 16 DUP(?)ARRAY3DD ?PLENTHEQU $ARRAY1问PLENTH的值为多少?它表示什么意义?4试根据以下要求,分别写出相应的汇编语言指令。A把AX寄存器和BX寄存器的内容相加,结果存入AX中。B用BX和SI的基址变址寻址方式,把存储器中的一个字节与DL的内容相加,并把结果送回DL中。C把数0BEH与AH内容相加,结果送回AH中。D用SI和位移量0200H的寄存器相对寻址方式把存储器中的一个字与AX相加,并把结果送回存储单元中。E用位移量0860H的直接寻址方式把存储器中一个字与数2EA0H相加,结果回送存储器中。四、程序分析(每小题5分,共20分)1试分析下面程序段完成什么功能?CON1DW HCON2DW HMOVAX, CON1MOVBX, CON2CMPAX, BXJGEGREATLESS: GREAT:2试分析下面程序段完成什么功能?OR AL,ALJZL0CMPAL, 1JZL1CMPAL, 2JZL2JMPSTOPL0:L1:L2:STOP:HLT3试问下面的程序段完成的功能是什么?程序执行后,AX的内容是什么?XORAX,AXMOVBX,2MOVCX,10L:ADDAX,BXADDBX,2LOOPLHLT4试分析下面的程序段完成什么功能?MOVCL,04SHLDX,CLMOVBL,AHSHRAX,CLSHRBL,CLORDL,BL五、程序设计(每小题10分,共30分)1试编写使AL寄存器中的无符号数乘20的程序段。2编写程序将ELEMS中的100个字节数据的位置颠倒过来(即第一个字节和第100个字节的内容交换,第二个字节和99个字节的内容交换)。3仔细阅读下列程序段,它是二个ASCII码转换为一字节十六进制数的子程序,请回答下列问题:A说明一个ASCII码字符转换为一位十六进制数的算法。B程序执行结束后,HEXUF字节单元中的内容是什么?C对程序进行注释,说明指令执行的工作。ASCBUF DB 38H,41HHEXBUF DB ? LEA SI,ASCBUFLEA DI,HEXBUFMOV CL,4MOV AL,SICALL ASCHEXSHL AL,CLMOV DI,ALMOV AL, SI+1CALL ASCHEXOR DI, ALHLTASC_HEX PROC NEARCMP AL,3AHJC ASC1SUB AL,7ASC1:SUB AL,30HRETASC_HEXENDP
收藏
编号:2582209
类型:共享资源
大小:147.58KB
格式:DOC
上传时间:2020-04-22
8
金币
- 关 键 词:
-
华中科技大学
80
x86
汇编语言
知识
程序设计
试卷
- 资源描述:
-
^`
《汇编语言程序设计》网络学院模拟试卷一 2004.4
班级________________ 姓名______________ 学号______________ 成绩______
一、改错题(10分,每题1分,在错误处划线,线下写上正确答案)
1. SHR BH, 8 2. ADD [BX], –15 3. LEA POINT, BUF 4. IN DX, 200
5. PUSH DH 6. MUL 25 7. XLAT BX, TAB 8. REPNZ MOVSW
9. MOV AX, 2[SI][DI] 10. MOV [BX], [SI]
二、单选题(20分,每题1分)
1.MOV指令的特点是________。
A.影响DF B.影响SF C.影响CF D.不影响标志位
2.使用寄存器间接寻址方式访问堆栈中某变量时,要选用________寄存器。
A.BX B.BP C.SI D.SP
3.8086标志寄存器中的三个控制标志是________。
A. IF、PF、SF B.DF、OF、CF C.DF、IF、TF D.TF、AF、IF
4.若有符号数运算的结果溢出,则置________为1。
A.OF B.CF C.SF D.IF
5.若某存贮器操作数的偏移地址在SI中,访问该操作数应采用________寻址方式。
A.立即 B.寄存器 C.寄存器问址 D.直接
6.串操作指令中,目的串的逻辑地址应为________。
A.DS:[SI] B.DS:[DI] C.ES:[DI] D.ES:[SI]
7.不在本模块定义而在本模块中引用的符号称________符号。
A.公共 B.局部 C.自定义 D.外部
8.若(CL)= 4,(AX)=0FF0FH,执行语句“ROR AX, CL”后 ,(AX)=________。
A.0FFFFH B.0FFF0H C.0F0FFH D.0FFFH
9.已知AL中存放着一个压缩BCD码,为实现AL减1操作,应选用________指令序列。
A.DEC AL B.SBB AL,0 C.SUB AL,1 D.SUB AL,1
AAS DAS AAS DAS
10.要将BL中的8位数据送到1234H端口号的外部设备中去,应选用________指令序列。
A.OUT 1234H, BL B.MOV DX,1234H
OUT DX, BL
C.MOV AL, BL D.MOV DX,1234H
MOV DX,1234H MOV AL, BL
OUT DX,AL OUT AL, DX
11.已知AX,BX中均为有符号数据,当进行字除法时,应采用________指令序列。
A.XOR DX,DX B.CBW C.IDIV BX D.CWD
DIV BX IDIV BX IDIV BX
12.要将DX的内容送入堆栈中从当前栈顶起第10个字中,应使用________语句。
A.MOV 18[SP],DX B.MOV 18[BP],DX
C.MOV BP,SP D.PUSH 18[DX]
MOV 18[BP],DX
13.要将CL中8位有符号数送入SI中去,应采用________。
A.MOV SI, CL B.MOV BYTE PTR SI, CL
C.MOV CH,O D.MOV AL,CL
MOV SI, CX CBW
MOV SI, AX
14.8086指令系统中的PUSH操作,会对SP自动进行________操作。
A.减1 B.加2 C.减2 D.加1
15.下列指令执行后,对源、目的操作数均无影响的指令是________。
A.XCHG AX,BX B.CMP AX,BX
C.SBB AX,[BX] D.MOV AX,BX
16.用REPE SCASB指令对某字符串进行扫描,若当扫描结束时CX≠0,则表示________。
A.在字符串中有一个与(AL)不同的字符
B.在字符串中找到了第1个与(AL)不同的字符
C.在字符串中有一个与(AL)相同的字符
D.在字符串中找到了第1个与(AL)相同的字符
17.条件转移指令JNLE的转移条件是________。
A.SF ⊕ OF= 0,且ZF= 0 B.SF ⊕ OF= 1,且ZF= 0
C.SF ⊕ OF= 0,且ZF= 1 D.SF ⊕ OF= 1,且ZF= 1
18.表示宏定义结束的伪指令是________。
A.ENDM B.ENDS C.ENDP D.END
19.设(SS)= 448AH,(SP)= 450H,执行后,当前栈顶的物理地址=_______。
A.44CE6H B.44CECH C.44CF4H D.44CF2H
20.下列数据定义伪指令中,________是错误的。
A.DB 12H B.DW 1234H C.DB ABCD D.DW ABCD
三、填空题(10分,每题1分)
1.要清除AX中的D15~11位,需采用___AND 0FFFH______________指令来实现。
2.已知(AX)= 789AH,问执行指令CBW后,(AX)=_______FF9AH_____________。
3.使用DOS中2号功能调用时,需先将_____要显示的字符的ASCII码______送入DL中。
4.在MOV AX, –5[BX] [DI]中,源操作数采用是_____相对基址加变址______寻址方式。
5.已知在DATA数据段中已定义有变量DUF,AA等,问与中划线语句等效的指令是________________。
6.与MOV AX, OFFSET BUF等效的LEA指令是____LEA AX,BUF_______________。
7.与JNL指令等同的指令操作符是_______JNB______________。
8.中断类型号为25H的中断服务程序的中断矢量存放在内存 94H ~ __96H 单元中。
9.主、子程序间参递参数的常用三种方式是___寄存器传递__、约定内存传递__和_堆栈传递___法。
10.要对DX中的内容求绝对值,在横线上应填入何指令。___AND DX, 7FFFH________
AND DX, DX
JNS L1
______________
L1:……
∶
DATA
四、作图及填充题(10分)
已知数据段定义如下:
DATA SEGMENT
C1 DB 0AH , 2 DUP ( 12 , 1), –7
C2 DW 0A ,–7
C3 EQU $ – C2
ORG 20
C4 DW C2+2
DATA ENDS
1.画出数据在主存中的分配图(细化到字节)(5分)
2.在划线处填上执行结果。
① MOV AX, C2-3 ;(AX)= __________
② MOV DX, C2+2 ;(DX)= __________
③ MOV BL, C1+5 ;(BL)= __________
④ MOV BX, OFFSET C1+3 ;(BX)= __________
⑤ MOV CL, C3-4 ;(CL)= __________
∶
TEST BX,80H
JNE T
JMP NT
T:…
NT:…
∶
五、程序分析题(每小题3分,共24分)
1.已知 BX=0F0FH,
请判别右边程序段执行
后,程序转向_______执行。
2.设A变量的偏移地址为100
A DW 5665H, 1234H
∶
LEA SI, A 左边程序段的二条指令执行后 (S I) =________
LDS BX, A (BX)=________
∶
3.如果在执行以下程序段前堆栈为空栈,
.
.
.
SS
SP
且程序其余处也未用堆栈操作指令。
要求:① 画出执行完①时堆栈变化示意图
∶
CALL PRO1
B1: ……
∶
B2: ……
∶
PRO1 PROC
PUSH CX
PUSH BX①
∶
POP BX ② 从子程序能返回到主程序B1处吗?为什么?
RET ______________________________________
PRO1 ENDP ______________________________________
∶
4.已知DS和ES指向同一个段,且当前数据段偏离0000H~00FFH的存贮单元中依次存放的内容为0~0FFH,请回答下列程序段执行后0000H~0009H单元中的内容为:
∶ ___________________________________________。
MOV SI, 0000H
MOV DI, 0001H
MOV CX, 10
CLD
REP MOVSW
∶
5. ∶
STR1 DB COMPUTERNDPASCAXZ
SZM DB E
∶
MOV AL, SZM
LEA DI, STR1 问左边程序段执行到NEXT处时,
MOV CX, 17 (CX)=__________
CLD (ZF)=__________
REPNE SCASB
NEXT: …
∶
6.已知:AX=0D800H, DX=0003H
∶
MOV CX, 2
L: SHL AX, 1 问左边程序段执行后
RCL DX, 1 (AX)=__________
LOOP L (DX)=__________
∶
7.程序段的功能是将数组的最大数送AL,请在各空白处填上一条合适的指令。
AA DB 3,7,32,10,100, ……
N EQU $ – AA
∶
MOV CX, N
MOV DI, OFFSET AA
MOV AL, [DI]
BB: INC DI
__________________①
JAE CC
MOV AL, [DI]
CC: ___________________②。
8. ∶
A DW ?
左边程序段为判A、B两字变量是否同为正数。是,置AX为0,否则,置AX为非零。
请在各空白处填上一条合适的条件转移指令。(两处不能用同一条条件转移指令。)
B DW ?
∶
MOV AX, A
MOV BX, B
XOR AX, BX
_________________①
TEST BX, 8000H
_________________③
MOV AX, 0
NEXT: ……
∶
9.读下面程序,回答下列问题:
①当输入为:ABCD↙ 时,输出什么?_____。
②在程序中的宏指令的;后,写出其宏扩展的形式。
③当输入字符串为①所述,则(BUF1+1)=________。
RW MACRO A,B
MOV AH,A
LEA DX,B
INT 21H
ENDM
DATA SEGMENT
BUF1 DB 30, ?, 30 DUP (0)
BUF2 DB PLEASE INPUT:
BUF3 DB 0AH, 0DH, $
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATE
START: MOV AX, DATE
MOV DS, AX
RW 9, BUF2;
RW 10, BUF1;
RW 9, BUF3;
MOV CL, BUF1+1
MOV CH, 0
MOV SI, CX
MOV AH, 2
LOPA: MOV DL, BUF1+1 [SI]
INT 21H
DEC SI
LOOP LOPA
MOV AH, 4CH
INT 21H
CODE ENDS
END START
④若漏写了一条DEC SI指令,程序结束后又显示什么?____________。
六、设计程序或程序段(26分)
1.设计将当前数据段偏移地址1000H至3000H 的字存贮单元中全设置为–1的程序段。(用二种不同方法) (4分)
2.设计求某无符号字节变量A的9倍的程序段(结果不超过一无符号字节数的范围)。(用二种不同方法) (4分)
3.用二种不同的方法设计将DI的高8位与DI的低8位互换的程序段。(用二种方法)(4分)
4.编写从键盘输入一串字符,从中找出字母A出现的个数,并将此数在屏幕下一行上用十进制数形式显示出来的程序。要求:
① 结构完整。 (3分)
② 回车换行用宏指令。 (2分)
③ 将AX中16位无符号二进制数→十进制数并在屏幕显示可调用已有的子程序PROS。(2分)
④ 画出流程图。 (2分) (或子模块PROS)
⑤ 程序正确。 (5分)
《汇编语言程序设计》网络学院模拟试卷二 2004.4
班级________________ 姓名______________ 学号______________ 成绩______
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题中的括号内。每小题1分,共10分)
1.CPU发出的访问存储器的地址是( )。
A.物理地址 B.偏移地址 C.逻辑地址 D.段地址
2.将高级语言的程序翻译成机器码程序的实用程序是( )。
A.编译程序 B.汇编程序 C.解释程序 D.目标程序
3.DEC BYTE PTR [BX] 指令中的操作数据类型是( )。
A.字 B.双字 C.字节 D.字符
4.在下列语句中,BUFFER称为( )。
A.符号 B.变量 C.助记符 D.标号
5.串操作指令中,源串操作数的段地址一定在( )寄存器中。
A.CS B.SS C.DS D.ES
6.使计算机执行某种基本操作的命令是( )。
A.伪指令 B.指令 C.标号 D.助符
7.将数据5618H存放在存储单元中的伪指令是( )。
A.DATA1 DW 1856H B.DATA1 DB 18H,56H
C.DATA1 EQU 5618H D.DATA1 DB 18H,00H,56H,00H
8.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( )。
A.1400H B.77F8H C.0000H D.0FF
9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是( )。
A.BCD码 B.二进制码 C.ASCII码 D.十六进制码
10.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为( )。
A.汇编语言 B.高级语言 C.机器语言 D.低级语言
二、填空题(每空1分,共20分)
1.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是__SCASB,SACSW,SCASD______。
2.通常所说的计算机系统包括__硬件___和_软件___两大部分。
3.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是_DS_、__CS_、___SS___、____ES__。
4.现有AX=2000H,BX=1200H,DS=3000H,DI=0002H,(31200H)=50H,(3120H)=02H,(31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位ZF、CF的值。
A.ADD AX,1200H ;问AX=__0___H ZF=__1__。
B.SUB AX,BX ;问AX=_EE00_H ZF=__0__。
C.MOV AX,[BX] ;问AX=__50H_H CF=_1___。
D.NEG WORD PTR [1200H];问(31200H)=___EE00___H CF=___1____,
5.设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,试计算出下列各种寻址方式下的有效地址,并填入括号中。
A.使用D的直接寻址( 0A2B1H )
B.使用BX的寄存器间接寻址( 1000H )
C.使用BX和D的寄存器相对寻址( B2B1H )
D.使用BX、SI和D的相对基址变址寻址( B3B1H )
E.使用BX、SI的基址变址寻址( 1100H )
三、简答题(共20分)
1.程序在数据段中定义的数组如下:(4分)
ARRAY DB ‘YES IS’
DB 20
DB ‘DO NOT’
请指出下列指令是否正确?若不正确,错在哪里?
A. MOV BX, OFFSET ARRAY
MOV AX, [BX+8]
B. MOV AX, ARRAY
C. MOV BX, 2
MOV SI, 3
MOV AX, ARRAY [BX][SI]
D. MOV BX, 22
MOV SI, 3
MOV AX, OFFSET ARRAY [BX][SI]
INC [AX]
2.如TABLE为数据段中0100单元的符号名,其中存放的内容为0FF00H,试问以下两条指令有什么区别?指令执行后,AX寄存器的内容是什么?(3分)
MOV AX,TABLE
MOV AX,OFFSET TABLE
3.对于下面的数据定义,三条MOV指令分别汇编成什么?(3分)
TAB1 DW 10 DUP(?)
TAB2 DB 10 DUP(?)
TAB3 DB ‘1234’
MOV AX,LENGTH TAB1
MOV BL,LENGTH TAB2
MOV CL,LENGTH TAB3
4.子程序的说明文件中应包括哪几方面的内容?(5分)
5.分别指出下列指令中源操作数的寻址方式:(5分)
A.MOV SI, 100 B.MOV CX, DATA [SI]
C.MOV [SI],AX D.ADD AX, [BX][DI] E.PUSHF
四、程序分析(每小题5分,共20分)
1.下列程序段完成什么工作?
DAT1 DB 30 DUP(?)
DAT2 DB 10 DUP(?)
MOV CX, 10
MOV BX, 20
MOV SI, 0
MOV DI, 0
NEXT: MOV AL, DAT1 [BX][SI]
MOV DAT2[DI], AL
INC SI
INC DI
LOOP NEXT
2.执行下列指令后,AX寄存器中的内容是什么?
START DW 10H,20H,30H,40H,50H
EE1 DW 3
MOV BX,OFFSET START
ADD BX,EE1
MOV AX,[BX]
3.试分析下面程序段的功能是什么?
CMP AL, ‘A’
JC OTHER
CMP AL, ‘Z’+1
JNC OTHER
JMP LETTER
OTHER:
LETTER:
4.下面程序段执行完以后,AL的内容是什么?
MOV BX,00FFH
AND BX,0FFFH
OR BX,0F0FH
XOR BX,00FFH
五、程序设计(每小题10分,共30分)
1.试编写出把DX、AX中的双字右移四位的程序段。
2.定义一个数据区,它包含有23H,24H,25H和26H四个字节数据,把这个数据区复制20次,并显示出复制结果。
3.内存自BUF单元开始的缓冲区连续存放着100个学生的英文分数,编程序统计其中90~100,60~89,60以下者各有多少人?并把结果连续存放到自RESUT开始的单元中。(要求画出程序流程图,各段定义完整)
《汇编语言程序设计》网络学院模拟试卷三 2004.4
班级________________ 姓名______________ 学号______________ 成绩______
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题中的括号内。每小题1分,共10分)
1.把若干个模块连接起来成为可执行文件的系统程序是( )。
A.汇编程序 B.连接程序 C.机器语言程序 D.源代码程序
2.使汇编程序执行某种操作的命令是( )。
A.变量 B.指令 C.伪指令 D.宏指令
3.串操作指令中,目的操作数的段地址一定在( )寄存器中。
A.CS B.SS C.DS D.ES
4.在下列语句中,AGAIN称为( )。
AGAIN: INC SI
A.符号 B.助记符 C.标号 D.变量
5.MOV BH, 1000[SI],该指令中源操作数采用的寻址方式是( )。
A.立即 B.直接 C.寄存器相对 D.寄存器间接
6.OR AL, AL是( )操作指令。
A.异或 B.加法 C.右移 D.逻辑或
7.DOS系统功能调用中,显示单个字符的系统调用号是( )H。
A.01H B.02H C.08H D.09H
8.使计算机执行某种操作的命令是( )。
A.宏指令 B.指令 C.伪指令 D.语句
9.换码指令的助记符是( )。
A.XCHG B.LEAS C.XLAT D.MOV
10.计算机能直接识别并执行的语言是( )。
A.汇编语言 B.机器语言 C.高级语言 D.低级语言
二、填空题(每空1分,共20分)
1.假设BL=0C5H,CL=2,CF=1,确定下列各条指令独立执行后,BL和CF中的值,并填入括号中。
A.SHR BL,1 ; BL=( 53H ) CF=( 0 )
B.SAR BL,CL ; BL=( 18H ) CF=( 1 )
C.ROR BL,1 ; BL=( 9H ) CF=( 0 )
D.RCL BL,CL ; BL=( 3H ) CF=( 0 )
2.现有数据定义伪指令如下,写出对应的数据在存储单元中的存放形式。
BUF1 DB 01,52H
BUF2 DW 3 DUP(? ,0)
BUF3 DW 2 DUP(0,2 DUP(1,2),3)
DUF1
BUF2
BUF3
3.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是___ASCII__码,称为美国________码。
4.8086/8088CUP中,有二个变址寄存器,分别是__SI____和__DI____,二个指针寄存器,分别是__源变址寄存器__和_目的变址寄存器____。
三、简答题(每小题5分,共20分)
1.请指出下列指令错误原因:
A. OR AX, [CX]
B. ADD [SI], [BX][DI]
C. JMP BYTE PTR LOOPS
D. SAR AX, 4
E. RCL DX
2.A.下面两个语句有何区别?
X1 EQU 1000H
X2 = 1000H
B.下面的程序段有错吗?若有,请指出错误。
CRAY PROC
PUSH AX
ADD AX, BX
RET
CRAY ENDP
3.假设程序中的数据定义如下:
ARRAY1 DW ?
ARRAY2 DB 16 DUP(?)
ARRAY3 DD ?
PLENTH EQU $–ARRAY1
问PLENTH的值为多少?它表示什么意义?
4.试根据以下要求,分别写出相应的汇编语言指令。
A.把AX寄存器和BX寄存器的内容相加,结果存入AX中。
B.用BX和SI的基址变址寻址方式,把存储器中的一个字节与DL的内容相加,并把结果送回DL中。
C.把数0BEH与AH内容相加,结果送回AH中。
D.用SI和位移量0200H的寄存器相对寻址方式把存储器中的一个字与AX相加,并把结果送回存储单元中。
E.用位移量0860H的直接寻址方式把存储器中一个字与数2EA0H相加,结果回送存储器中。
四、程序分析(每小题5分,共20分)
1.试分析下面程序段完成什么功能?
CON1 DW H
CON2 DW H
MOV AX, CON1
MOV BX, CON2
CMP AX, BX
JGE GREAT
LESS: …
GREAT:…
2.试分析下面程序段完成什么功能?
OR AL,AL
JZ L0
CMP AL, 1
JZ L1
CMP AL, 2
JZ L2
JMP STOP
L0: …
L1: …
L2: …
STOP: HLT
3.试问下面的程序段完成的功能是什么?程序执行后,AX的内容是什么?
XOR AX,AX
MOV BX,2
MOV CX,10
L: ADD AX,BX
ADD BX,2
LOOP L
HLT
4.试分析下面的程序段完成什么功能?
MOV CL,04
SHL DX,CL
MOV BL,AH
SHR AX,CL
SHR BL,CL
OR DL,BL
五、程序设计(每小题10分,共30分)
1.试编写使AL寄存器中的无符号数乘20的程序段。
2.编写程序将ELEMS中的100个字节数据的位置颠倒过来(即第一个字节和第100个字节的内容交换,第二个字节和99个字节的内容交换……)。
3.仔细阅读下列程序段,它是二个ASCII码转换为一字节十六进制数的子程序,请回答下列问题:
A.说明一个ASCII码字符转换为一位十六进制数的算法。
B.程序执行结束后,HEXUF字节单元中的内容是什么?
C.对程序进行注释,说明指令执行的工作。
ASCBUF DB 38H,41H
HEXBUF DB ?
LEA SI, ASCBUF
LEA DI, HEXBUF
MOV CL, 4
MOV AL, [SI]
CALL ASC–HEX
SHL AL, CL
MOV [DI], AL
MOV AL, [SI+1]
CALL ASC–HEX
OR [DI], AL
HLT
ASC_HEX PROC NEAR
CMP AL,3AH
JC ASC1
SUB AL,7
ASC1: SUB AL,30H
RET
ASC_HEX ENDP
展开阅读全文
淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。