武汉理工大学汇编语言试题(三套_内含答案_2012年期末考试绝大部分是从上面出的)

合集下载

汇编语言程序设计期末考试试卷及参考答案

汇编语言程序设计期末考试试卷及参考答案

【汇编语言程序设计】期末考试-试卷及参考答案执行上述两条指令后,正确的结果是( B )。

A.(AX)=1001H; B.(AX)=0FFFH;C.(AX)=1000H; D.(AX)=0111H。

6.串指令中的目的操作数地址一定是由____A_ _提供。

()A.ES:[DI] ; B.SS:[BP];C.DS:[SI] ; D.CS:[IP]。

7.将DX的内容除以2,正确的指令是( C )。

A.DIV? 2 ;B.DIV ? DX,2 ;C.SAR? DX,1;D.SHL? DX,1。

8. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。

A.目标程序; B.汇编语言源程序;C.可执行程序; D.汇编程序。

9.用一条指令仅实现将AX←BX+SI的方法是( D )。

A.XCHG AX,[BX][SI] ;B.MOV AX,[BX+SI];C.LEA AX,BX[SI] ;D.LEA AX,[BX][SI]。

10.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( C )。

A.1FFFH; B.1998H;C.1FFEH; D.2002H。

1.A2. C3.A4.D5.B6.A7.C8.B9.D 10.C二、指出下列指令的出错原因,并改正。

(每小题2分,共12分)1.MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX2.MOV CS,AX;代码段寄存器CS不能作目的操作数,改正为MOV DS,AX3.ADD AX,DS;段寄存器DS的内容不能作为加法指令的操作数,改正为MOV BX,DSADD AX,BX4.TEST BX,[CX];不能使用CX实现寄存器间接寻址,改正为MOV SI,CXTEST BX,[SI]5.SUB [BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数的数据类型不确定,改正为:MOV AX,[BX]SUB AX,[BP+SI]或:MOV AL,[BX]SUB AL,[BP+SI]6.SHL DX ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空3分,共18分)1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄存器中。

完整版汇编语言试题及答案..doc

完整版汇编语言试题及答案..doc

一,单项选择题 (每小题 1 分,共 20 分1-10CCCCAADACB 11-20.ADBBAADDCC1.指令 JMP FAR PTR DONE 属于 ( CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址2.下列叙述正确的是 (A.对两个无符号数进行比较采用CMP 指令 ,对两个有符号数比较用CMP S 指令B.对两个无符号数进行比较采用CMPS 指令 ,对两个有符号数比较用CM P 指令C.对无符号数条件转移采用JAE/JNB 指令 ,对有符号数条件转移用JGE/J NL 指令D.对无符号数条件转移采用JGE/JNL 指令 ,对有符号数条件转移用JAE/J NB 指令3.一个有 128 个字的数据区 ,它的起始地址为 12ABH:00ABH, 请给出这个数据区最末一个字单元的物理地址是 (A.12CSBHB.12B6BHC.12C59HD.12BFEH4.在下列指令的表示中 ,不正确的是 (A.MOV AL,[BX+SI]B.JMP SHORT DONIC.DEC [BX]D.MUL CL5.在进行二重循环程序设计时,下列描述正确的是 (A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内B.外循环初值应置外循环之内;内循环初值应置内循环之内C.内、外循环初值都应置外循环之外D.内、外循环初值都应置内循环之外,外循环之内6.条件转移指令 JNE 的测试条件为 (A.ZF=0B.CF=0C.ZF=1D.CF=17.8086CPU在基址加变址的寻址方式中,变址寄存器可以为 (A.BX 或 CXB.CX 或 SIC.DX 或 SID.SI 或 DI8.已知 BX=2000H,SI=1234H, 则指令 MOV AX,[BX+SI+2]的源操作在(中。

A.数据段中偏移量为3236H 的字节B.附加段中偏移量为3234H 的字节C.数据段中偏移量为3234H 的字节D.附加段中偏移量为3236H 的字节9.执行如下程序 :(MOV AX,0MOV AX,0MOV BX,1MOV CX,100A:ADD AX,BXINC BXLOOP AHLT执行后 (BX=(A.99B.100C.101D.10210.上题的程序执行后 (AX=(A.5000B.5050C.5100D.515011.对于下列程序段 :(AGAIN:MOV AL,[SI]MOV ES:[DI],ALINC SIINC DILOOP AGAIN也可用 ______指令完成同样的功能。

汇编语言期末考试试题及答案

汇编语言期末考试试题及答案

汇编语言模拟试题及答案一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.指令JMP FAR PTR DONE属于参考答案为:CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址[解析]略2.下列叙述正确的是参考答案为:CA.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB 指令[解析]对于无符号数和有符号数的比较都采用CMP指令;CMPS指令是串比较指令;对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转移指令应是:JGE、JNL、JLE、JNG。

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是参考答案为:CA.12CSBHB.12B6BHC.12C59HD.12BFEH[解析]末字与首字相隔(128-1=)127个字,且每个字占用2个字节,因此末字单元的物理地址应为:首字单元的物理地址+(128-1)×2即 12ABH×10H+00ABH+(128-1)×2=12C59H。

4.在下列指令的表示中,不正确的是参考答案为:CA.MOV AL,[BX+SI]B.JMP SHORT DONIC.DEC [BX]D.MUL CL[解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C中的[BX],没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如DEC BYTE PTR [BX] 或 DEC WORD PTR [BX]但是在题目的选项C中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。

湖北理工学院大二计算机专业汇编语言考试试卷及参考答案3

湖北理工学院大二计算机专业汇编语言考试试卷及参考答案3

湖北理工学院汇编语言考试试卷及参考答案3一、单项选择题(5’)1.串操作方向由标志位___决定。

A、IFB、DFC、CFD、TF答案:D2.段内调用子程序首先要将断点的___压入堆栈。

A、SI值B、IP值C、CS值D、DX值答案:B3.打印输出需进行___号系统功能调用。

A、1B、2C、5D、9答案:C4.编写分支程序,在进行判断前,可用指令构成条件,其中不能形成条件的是___。

A、CMPB、SUBC、ANDD、MOV答案:D5.指令“TEST BH,1”测试BH中的数是否为奇数,若为奇数则转移,那么随后的条件转移指令应为___。

A、JNEB、JZC、JSD、JC答案:A6.MASM语句biao号和指令中,采用___分隔标号和指令。

A、逗号B、分号C、冒号D、空格答案:C7.DAA的隐含操作数为___。

A、ALB、BLC、CLD、DL答案:A8.循环程序控制方法包括计数控制法和___。

A、循环控制法B、条件控制法C、分支控制法D、子程序控制法答案:B9.循环指令LOOPNZ终止循环的条件是___。

A、CX=0,且ZF=0B、CX=0,或ZF=1C、CX10,且ZF=0D、CX10,或ZF=1答案:C10.汇编语言中的变量有多种类型属性,但错误的类型是___。

A、BYTEB、CHARC、WORDD、DWORD答案:B11.DIV指令的操作数为字除数时,余数送___。

A、AXB、BXC、CXD、DX答案:D12.串操作指令中,源串操作数的段地址一定在___寄存器中。

A、CSB、SSC、DSD、ES答案:C13.主程序调用子程序由___指令实现。

A、PROCB、ENDPC、JMPD、CALL答案:D14.指令MOV AX,[3070H]中源操作数的寻址方式为___。

A、寄存器间接寻址B、立即寻址C、直接寻址D、变址寻址答案:C15.执行REP MOVSW串操作时,错误的操作是___。

A、置方向标志位B、根据串操作指令设置重复次数并送入CXC、设置源操作数及目的操作数指针D、源操作数及目的操作数都可以加超越段答案:D16.当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是___。

(word版)汇编语言期末考试试题及答案

(word版)汇编语言期末考试试题及答案

汇编语言模拟试题及答案一,单项选择题〔在每题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每题1分,共20分〕1.指令JMPFARPTRDONE 属于参考答案为:CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址[解析]略2.以下表达正确的选项是参考答案为:CA.对两个无符号数进行比拟采用CMP指令,对两个有符号数比拟用CMPS指令B.对两个无符号数进行比拟采用CMPS指令,对两个有符号数比拟用CMP指令C.对无符号数条件转移采用JAE/JNB 指令,对有符号数条件转移用JGE/JNL指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令[解析]对于无符号数和有符号数的比拟都采用CMP指令;CMPS指令是串比拟指令;对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转移指令应是:JGE、JNL、JLE、JNG。

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是参考答案为:CA.12CSBHB.12B6BHC.12C59HD.12BFEH[解析]末字与首字相隔〔128-1=〕127个字,且每个字占用2个字节,因此末字单元的物理地址应为:首字单元的物理地址+〔128-1〕×2即12ABH×10H+00ABH+〔128-1〕×2=12C59H。

4.在以下指令的表示中,不正确的选项是参考答案为:CA.MOVAL,[BX+SI]B.JMPSHORTDONIC.DEC[BX]D.MULCL[解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C中的[BX],没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如DECBYTEPTR[BX] 或DECWORDPTR[BX]但是在题目的选项C中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。

汇编语言-期末考试试卷及答案

汇编语言-期末考试试卷及答案
A-2
课程________________________班级________________________姓名__________________________学号________________________
……………………………… 密……………………………… 封 ………………………………… 线 ………………………………
……………………………… 密 ……………………………… 封 ………………………………… 线 ………………………………

题号 得分
一 二 三 四 五

六 七



九 十

十一

十二

十三 十四

十五
纸 (一 )
十六 十七 十八 十九 二十 总 分
2009~2010 学年第一学期期末考试《汇编语言》试卷(A)安徽来自工业大



纸 (五 )
A-5
……………………………… 装 ……………………………… 订 ………………………………… 线 ………………………………
安 徽 工 业 大 学 试 卷 封 面
(20 ~20 学年第 学期)
课程名称___________________任课教师___________________实考人数___________________ 装订份数:共_______册 本册为第_______册考卷_______份
……………………………… 装 ……………………………… 订 ………………………………… 线 ………………………………
课程________________________班级________________________姓名__________________________学号________________________

汇编语言期末考试试题及答案

汇编语言期末考试试题及答案

汇编语言期末考试试题及答案汇编语言模拟试题及答案一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.指令JMP FAR PTR DONE属于参考答案为:CC.段间转移直接寻址2.下列叙述正确的是参考答案为:CC.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是参考答案为:C C.12C59H4.在下列指令的表示中,不正确的是参考答案为:CC.DEC [BX]5.在进行二重循环程序设计时,下列描述正确的是参考答案为:A A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内6.条件转移指令JNE的测试条件为参考答案为:AA.ZF=07.8086CPU在基址加变址的寻址方式中,变址寄存器可以为参考答案为:D D.SI或DI8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在()中。

参考答案为:AA.数据段中偏移量为3236H的字节9.执行如下程序:MOV AX,0MOV BX,1MOV CX,100A:ADD AX,BXINC BXLOOP AHLT执行后(BX)=参考答案为:CA.99B.100C.101D.10210.上题的程序执行后(AX)=参考答案为:BB.505011.对于下列程序段:AGAIN:MOV AL,[SI]MOV ES:[DI],ALINC SIINC DILOOP AGAIN也可用______指令完成同样的功能。

参考答案为:AA.REP MOVSB12.下面指令序列执行后完成的运算,正确的算术表达式应是MOV AL,BYTE PTR XSHL AL,1DEC ALMOV BYTE PTR Y,AL参考答案为:DD.y=x2-113.在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来。

汇编语言 期末试题和答案 三套 有详细解释

汇编语言 期末试题和答案 三套 有详细解释

汇编语言期末试题和答案三套有详细解释汇编语言期末试题和答案三套有详细解释一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.cpu要访问的某一存储单元的实际地址称()a.段地址b.偏移地址c.物理地址d.逻辑地址2.某存储单元的物理地址就是12345h,可以做为它的段地址存有()a.2345hb.12345hc.12340hd.1234h3.执行后使bx=0的同时也使cf=0,of=0的指令是()a.xorbx,bxb.orbx,bxc.andbx,bxd.cmpbx,bx4.循环控制指令loopnz/loopne掌控循环继续执行的条件就是()a.cx≠0且zf=1b.cx≠0且zf=0c.cx≠0或zf=1d.cx≠0或zf=05.在执行daa指令,当高四位bcd码校正时产生进位,如要把此进位值送入ah中,对这进位值的操作应是()a.daa校正指令的功能已自动加到ah中b.进位值在af中,校正后根据af内容再加在ah中c.进位值在cf中,校正后根据cf内容再加在ah中d.位次值在al最低位上,校正后根据al最低位内容再加在ah中6.and,or,xor,not为四条逻辑运算指令,下面的解释正确的是()a.指令xorax,ax执行后,ax内容不变,但设置了标志位b.指令ordx,1000h执行后,将dx最高位置1,其余各位置0c.指令andax,ofh执行后,分离出al低四位d.notax,执行后,将ax清07.在继续执行以下指令时,须要采用段寄存器ds的指令就是()a.stoswb.addal,clc.negbxd.incda[bx]8.无论bh中原有的数是奇数或偶数,若要使bh中的数一定为奇数,应执行的指令是()a.addbh,01hb.orbh,01hc.xorbh,01hd.testbh,01h9.完成对cl寄存器的内容乘以4的正确操作是()a.rolcl,1b.mul4rolcl,1c.shlcl,1d.movcl,2shlcl,1shlcl,cl10.下面各传输指令中,恰当的就是()a.mov[di],[si]b.mov[dx+di],alc.movwordptr[bx],0100hd.moval,bx11.汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法()a.名字的第一个字符可以是大写英文字母及小写英文字母b.名字的第一个字符可以是字母、数字及、@、_c.名字的有效长度≤31个字符d.在名字中不允许出现$112.要实现使beta的值为56,应采用语句为()a.betadb56b.betadb56hc.betaequ56d.betaequ56h13.repzcmpsw指令,重复执行的终止条件是()a.cx=0或zf=0b.cx=0且zf=0c.cx=0或zf=1d.cx=0且zf=114.下面程序段执行后,al中的内容是()movax,8833haddal,ahdaaa.21b.21hc.0c1hd.0ddh15.比较两个带符号的数a、b,当a=b时程序转移,测试的条件为()a.zf=1b.zf=0c.sf=1d.sf=016.检查二个并无符号数的关系,若必须同时实现al≥bl时分支回去lop1处为,那么在“cmpal,bl”指令后应当与的分支指令就是()a.jnclop1b.jalop1c.jclop1d.jgelop117.在以下串成操作方式指令中,同时采用源串和目的串成地址指针的指令就是()a.stoswb.lodswc.scaswd.cmpsw18.设al=0ah,下列指令执行后能使al=05h的是()a.notalb.andal,0fhc.xoral,0fhd.oral,0fh19.da1dw?ab?,?cd?,?ef?,?gh?()┇movax,da1+3指令继续执行后ax中的内容就是a.?ef?b.?cd?c.?bc?d.?fc?20.使用dos系统功能调用时,使用的软中断指令是()a.int21b.int10hc.int16hd.int21h二、填空题(本大题共12空,每空0.5分后,共6分后)恳请在每小题的空格中填入恰当答案。

汇编语言期末考试试题及答案

汇编语言期末考试试题及答案

汇编语言模拟试题及答案一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.指令JMP FAR PTR DONE属于参考答案为:CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址[解析]略2.下列叙述正确的是参考答案为:CA.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB 指令[解析]对于无符号数和有符号数的比较都采用CMP指令;CMPS指令是串比较指令;对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转移指令应是:JGE、JNL、JLE、JNG。

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是参考答案为:CA.12CSBHB.12B6BHC.12C59HD.12BFEH[解析]末字与首字相隔(128-1=)127个字,且每个字占用2个字节,因此末字单元的物理地址应为:首字单元的物理地址+(128-1)×2即 12ABH×10H+00ABH+(128-1)×2=12C59H。

4.在下列指令的表示中,不正确的是参考答案为:CA.MOV AL,[BX+SI]B.JMP SHORT DONIC.DEC [BX]D.MUL CL[解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C中的[BX],没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如DEC BYTE PTR [BX] 或 DEC WORD PTR [BX]但是在题目的选项C中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。

汇编语言考试复习题及参考答案

汇编语言考试复习题及参考答案

汇编语言考试复习题及参考答案第三套题一、1. 8位无符号整数的表示范围为0~255,写成16进制形式为00H~__________;8位有符号整数的表示范围为-128~+127,写成16进制形式为__________~__________。

2. CPU发出的访问存储器的地址是__________。

3. 逻辑地址为F000:100的存储单元,其物理地址是__________。

4. 用来指示堆栈栈顶的偏移地址的是__________寄存器。

5. 若要测试AL寄存器D4、D2、D0位是否都为0,则可使用__________指令语句(含操作数),以产生转移条件。

这条指令执行后将利用标志位__________实现转移。

6. 若定义:bdata db 2 dup(1,2,2dup(3),4),则dbata变量前5个单元从低地址到高地址的数据依次是__________。

7. 假设varw是一个16位变量,则指令“mov varw,ax”的目的操作数的寻址方式是__________。

二、1.对汇编语言源程序进行翻译,形成OBJ文件的是A.汇编程序B.连接程序C.编辑程序D.调试程序2.下列各个8位二进制数的补码中,真值最大的是A.10001000B.11111111C.00000000D.000000013.MASM语句中,表达常数不正确的形式是A.01101001BB. A346HC.’A’4.如果SS=600H,则说明堆栈段物理地址起始于A.60HB.600HC.6000HD.60000H5.dw 50 dup(?)预留了存储空间的字节数是A.25B.50C.100D.2006.下列指令中有操作数在代码段中的是A.mov ax,34hB.add ax,bxC.inc word ptr [34h]D.cmp ax,[34h]7.假设AL=5,要使得AL=0FAH,应执行的指令是A. not alB.and al,0fhC.xor al,0f0hD.or al,0fh8.设置逻辑段应该采用的一对伪指令是A.segment/endsB.start/end startC.proc/endpD.macro/endm9.条件转移指令JNE条件是A.CF=0B.CF=1C.ZF=010.逻辑移位指令SHL可用于A.有符号数乘以2B.有符号数除2C.无符号数乘以2D.无符号数除以211.执行“in al, dx”指令后,进入AL寄存器的数据来自A.寄存器B.存储器C.立即数D.外设端口12.将十进制数75以压缩BCD码送入AX,正确的指令是A.mov ax,0075B. mov ax,0705C.mov ax,0075hD. mov ax,0705h13.如下指令可将AX寄存器内容改变的是A. cmp ax,bxB. test ax,bxC. and ax,bxD. xchg ax,bx14.设AH=10H,执行“neg ah”指令后,正确的结果是A. AH=10H、CF=1B. AH=F0H、CF=0C. AH=10H、CF=0D. AH=F0H、CF=115.如下程序段:again: mov es:[di],alinc diloop again可用指令__________完成相同的功能。

汇编语言期末考试试题及答案

汇编语言期末考试试题及答案

汇编语言模拟试题及答案一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.指令JMP FAR PTR DONE属于参考答案为:CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址[解析]略2.下列叙述正确的是参考答案为:CA.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB 指令[解析]对于无符号数和有符号数的比较都采用CMP指令;CMPS指令是串比较指令;对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转移指令应是:JGE、JNL、JLE、JNG。

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是参考答案为:CA.12CSBHB.12B6BHC.12C59HD.12BFEH[解析]末字与首字相隔(128-1=)127个字,且每个字占用2个字节,因此末字单元的物理地址应为:首字单元的物理地址+(128-1)×2即 12ABH×10H+00ABH+(128-1)×2=12C59H。

4.在下列指令的表示中,不正确的是参考答案为:CA.MOV AL,[BX+SI]B.JMP SHORT DONIC.DEC [BX]D.MUL CL[解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C中的[BX],没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如DEC BYTE PTR [BX] 或 DEC WORD PTR [BX]但是在题目的选项C中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。

2012汇编语言试卷A参考答案

2012汇编语言试卷A参考答案

2012汇编语言试题A一.单项选择题(每题1分,共20分)1.指令指针寄存器是(C)。

A)BP B)SP C)IP D)PSW2.DA1 DB67HNUM EQU80H则执行AND DA1,NUM语句后DA1中的内容是(D)。

A)E7HB)80HC)67HD)03.与指令MOV AX,NOT0F0H等效的汇编语言指令是(B)。

A)MOV AX,0FH B)MOV AX,0FF0FHC)MOV AX,000FH D)MOV AX,0F0H4.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令是(D)。

A)CMP B)SUB C)AND D)MOV5.将高级语言的程序翻译成机器码程序的实现程序是(A)。

A)编译程序B)汇编程序C)解释程序D)目标程序6.在程序顺序执行时,每取一条指令语句,IP指针增加的值是(D)。

A)1 B)2 C)3 D)由指令长度决定的7.假设字节单元(02398H)=12H,(02399H)=34H,(0239AH)=56H,则(02399H)字单元的内容是(C)。

A)3412H B)3456H C)5634H D)1234H8.INC WORD PTR [BX] 指令中的操作数的数据类型是(A)。

A)字B)双字C)字节D)四字9.在循环程序中使用LOOP指令作为循环结束的判断,其计数值一般应放在寄存器是(B)。

A)DX B)CX C)BP D)IP10.在汇编语言程序设计中,伪指令OFFSET的含义是回送变量或标号的(B)。

A)段地址值B)偏移地址值C)物理地址值D)操作数11.下面的数据传送指令中,错误的操作是(D)。

A)MOV SS:[BX+DI],1000H B)MOV DX,1000HC)WORD PTR [BX],1000H D)MOV DS,2000H12.在下列指令的表示中,不正确的是(C)。

A)MOV AL,[BX+SI] B)JMP SHORT DON1C)DEC [BX] D)MUL CL13.在一列段寄存器中,堆栈段寄存器是(D)。

汇编语言题库及部分答案

汇编语言题库及部分答案

一、单项选择题1、在下列的选项中,能够组成计算机系统的是(A )。

A.硬件系统和软件系统B.CPU、存储器、输入/输出设备C.操作系统、各种语言D.系统软件和应用软件2、汇编语言属于( B )。

A.用户软件B.系统软件C.高级语言D.机器语言3、汇编语言源程序经汇编程序汇编后产生的文件的扩展名是(B )。

A.EXE B.OBJ C.ASM D.LST4、汇编语言的什么文件经链接(LINK)后产生可执行文件?(D)A.ASM B.EXE C.LST D.OBJ5、中央处理器CPU是由(D )组成的。

A.运算器B.控制器C.寄存器组D.前三者6、IBM PC机的DOS是属于( B )。

A.用户软件B.系统软件C.系统硬件D.一种语言7、汇编语言源程序是( A )程序。

A.不可直接执行的B.可直接执行的C.经汇编程序汇编后就可执行的D.经连接后就可直接执行的8、8086/8088 CPU的寄存器组中,8位的寄存器共有(C )个。

A.4B.6C.8D.109、8086/8088 CPU的寄存器组中,16位的寄存器共有(D )个。

A.10B.12C.13D.1410、8086/8088 CPU执行算术运算时PSW共有( C )个标志位会受影响。

A.4B.5C.6D.711、在程序执行过程中,IP寄存器始终保存的是(B )。

A.上一条指令的首地址B.本条指令的首地址。

C.下一条指令的首地址D.需计算有效地址后才能确定地址。

12、IBM PC机的存储器可分( D )个段。

A.4B.256C.512D.6553613、当使用BP作编程地址时,此时使用的是(D )段。

A.CSB.DSC.ESD.SS14、如果指令的运算结果为0,则( C )标志位为1。

A.SFB.OFC.ZFD.CF15、如果指令的运算结果中有奇数个1,则(A )标志位为0。

A.PFB.CFC.OFD.SF16、IBM PC机的内存是按(B )是编址的。

汇编语言(本科)武汉理工大学 在线作业

汇编语言(本科)武汉理工大学 在线作业

汇编语言(本科)武汉理工大学在线作业一、判断(共计100分,每题2.5分)1、在汇编语言中,寻找操作数的过程就是操作数的寻址一般来说,存放在指令代码中的操作数称为立即数,存放在CPU的内部寄存器中的操作数称为寄存器操作数,存放在内部存储器中的操作数称为存储器操作数。

A.正确B.错误答案:【A】2、在1000H单元中有一条二字节指令JMP SHORT LAB,如果其中的偏移量分别为30H、6CH、0B8H,则转向地址LAB的值分别为1030H、106CH、10B8H。

A.正确B.错误答案:【A】3、单元中有一条二字节指令,化为二进制是11001101,化为八进制是315。

A.正确B.错误答案:【A】4、数-27的补码表示是11100101(8位),扩展到16位为1111111111100101。

A.正确B.错误答案:【A】5、求出十六进制数9D60与十六进制数62A0之和,并根据结果设置标志位SF、ZF、CF和OF的值,和为0000H;SF=0,ZF=1,CF=1,OF=0。

A.正确B.错误答案:【A】6、假设程序中的数据定义如下:PARTNO DW ?PNAME DB 16 DUP (?)COUNT DD?PLENTH EQU $-PARTNO问PLENTH的值为16H。

A.正确B.错误答案:【A】7、伪指令是它是在对源程序汇编期间由汇编程序处理的操作,它不产生任何机器代码。

A.正确B.错误答案:【A】8、十六进制数0FFF8H表示的十进制正数为65528,表示的十进制负数为-8。

A.正确B.错误答案:【A】9、寻找操作数的过程就是操作数的寻址方式。

A.正确B.错误答案:【A】10、要求屏蔽寄存器AL第0,1两位,则要执行指令AND AL,0FCH;如果要求把AL的第0,1位变反,可使用指令XOR AL,03H。

A.正确B.错误答案:【A】11、SP称为堆栈指示器,它用来存放当前栈顶的EA。

A.正确B.错误答案:【A】12、将二进制数111110化为十进制是62,将十进制数31化为二进制为11111,化为八进制为37。

武汉理工大学汇编语言试题(三套,内含答案,2012年期末考试绝大部分是从上面出的)

武汉理工大学汇编语言试题(三套,内含答案,2012年期末考试绝大部分是从上面出的)

《汇编语言程序设计》试卷模拟试卷一一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

1.用户为了解决自己的问题,用汇编语言所编写的程序,称为()A)目标程序B)源程序C)可执行程序D)汇编程序2.指令指针寄存器是()A)BP B)IP C)SP D)PSW3.当堆栈为空时,如SS=0805H,SP=40H,栈底字单元的物理地址是()A)08090H B)08089H C)0808EH D)08450H4.下面指令中,源操作数的寻址方式为立即寻址的是()A)MOV AX,OFFSET A B)MOV AX,AC)MOV AX,A+1 D)MOV AX,A[BX]5.下面各传送指令中,正确的是()A)MOV [DI],[SI] B)MOV [DX+DI],ALC)MOV AL,BX D)MOV WORD PTR [BX],0100H6.已知CS=2300H,DS=2400H,执行下列指令序列后,CS和DS值是()PUSH CSPOP DSA)CS=0 B)CS=2400H C)CS=2400H D)CS=2300H DS=2300H DS=2300H DS=2400H DS=2300H7.执行下面指令语句,则AX= ()MOV AL,95HCBWA)0095H B)0F95H C)0FF95H D)9095H8.当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()A)表示结果中含1的个数为偶数B)表示结果中含1的个数为奇数C)表示该数为偶数D)表示结果中低八位含1的个数为偶数9.设AX=1000HNEG AXNOT AX执行上述指令后,正确的结果是()A)AX=1001H B)AX=0FFFH C)AX=1000H D)AX=0111H10.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是()A)MOV AL,00H B)AND AL,00H C)XOR AL,AL D)SUB AL,AL11.将CX寄存器低4位清零的正确指令是()A)AND CX,0F0H B)AND CX,0FFF0HC)AND CX,1110H D)MOV CX,012.执行后使BX=0的同时也使CF=0,OF=0的指令是()A)XOR BX,BX B)OR BX,BXC)AND BX,BX D)CMP BX,BX13.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是()A)CX=0且ZF=0 B)CX=0且ZF=1C)CX=0或ZF=0 D)CX=0或ZF=114.条件转移指令JBE产生转移的条件是()A)CF=0 OR ZF=0 B)CF=0 OR ZF=1C)CF=1 OR ZF=0 D)CF=1 OR ZF=115.比较BX和SI中的两个存储器地址,若BX≥SI转向HIGH的正确指令是()A)JAE HIGH B)JBE HIGH C)JEG HIGH D)JLE HIGH16.循环指令Loop规定循环次数必定在寄存器()A)DX中B)DL中C)CX中D)CL中17.DEC WORD PTR[BX]指令中的操作数的数据类型是()A)字B)双字C)字节D)四字18.下面指令执行后,变量DAB中的内容是()DAW DW 2A05HDAB DB 0FAH:MOV AL,BYTE PRT DAWSUB DAB,ALA)0DAH B)0FAH C)0F5H D)0D0H19.使用汇编语言的伪操作命令定义()V AL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0))则在V AL存储区内前十个字节单元的数据是A)1,2,3,3,2,1,0,1,2,3 B)1,2,3,3,3,3,2,1,0,1C)2,1,2,3,3,2,1,0,2,1 D)1,2,3,3,3,1,0,1,0,120.设NUM=60H,表达式(NUM LT 60H AND 30)OR(NUM GE 60H AND 40)的值是()A)0 B)30H C)40 D)0FFFFH二、填空题(本大题共5小题,每空1分,共20分)1.INTEL 8088 管理的存储器空间最大容量为______________,I/O端口地址空间最大容量为_____________。

【良心出品】汇编语言期末考试试题及答案

【良心出品】汇编语言期末考试试题及答案

汇编语言模拟试题及答案一,单项选择题(在每题的四个备选答案中,选出一个正确的答案,并将其号填在题干后的括号内,每题 1 分,共20 分)1.指令JMP FAR PTR DONE 属于参考答案为:CA .段内转移直接寻址B .段内转移间接寻址C.段间转移直接寻址D .段间转移间接寻址[解析]略2.以下表达正确的选项是参考答案为:CA .对两个无符号数进行比拟采用CMP 指令,对两个有符号数比拟用CMPS 指令B .对两个无符号数进行比拟采用CMPS 指令,对两个有符号数比拟用CMP 指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令D .对无符号数条件转移采用JGE/JNL 指令,对有符号数条件转移用JAE/JNB指令[解析]对于无符号数和有符号数的比拟都采用CMP 指令;CMPS 指令是串比拟指令;对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转移指令应是:JGE、JNL、JLE、JNG.3.一个有128 个字的数据区,它的起始地址为12ABH :00ABH ,请给出这个数据区最末一个字单元的物理地址是参考答案为:CA.12CSBHB.12B6BHC.12C59HD.12BFEH[解析]末字与首字相隔(128— 1 =) 127个字,且每个字占用2个字节,因此末字单元的物理地址应为:首字单元的物理地址+ ( 128—1) X2即12ABHX 10H + 00ABH + (128 — 1) X2=12C59H.4.在以下指令的表示中,不正确的选项是参考答案为:CA.MOV AL , [BX+SI]B.JMP SHORT DONIC.DEC [BX]D.MUL CL[解析]当只有一个存储器操作数时, 这个操作数的类型不明确,例如选项 C 中的[BX] ,没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如DEC BYTE PTR [BX] 或DEC WORD PTR [BX]但是在题目的选项 C 中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的.5.在进行二重循环程序设计时,以下描述正确的选项是参考答案为:AA .外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内B .外循环初值应置外循环之内;内循环初值应置内循环之内C.内、外循环初值都应置外循环之外D .内、外循环初值都应置内循环之外,外循环之内[解析]循环参数置初值,应在进入循环以前给出.6.条件转移指令JNE 的测试条件为参考答案为:AA.ZF=0B. CF=0C.ZF=1D .CF=1[解析]略.7.8086CPU 在基址加变址的寻址方式中,变址存放器可以为参考答案为:DA.BX 或CXB.CX 或SIC.DX 或SID.SI 或DI[解析]略8.BX=2000H , SI=1234H ,那么指令MOV AX , [BX+SI+2]的源操作在〔〕中. 参考答案为:AA .数据段中偏移量为3236H 的字节B .附加段中偏移量为3234H 的字节C.数据段中偏移量为3234H的字节D .附加段中偏移量为3236H 的字节[解析]指令中的源操作数的寻址方式是相对基址变址寻址, 且由于其中的基址寄存器采用的是BX,所以源操作数是在数据段中,其偏移量为:BX+SI+2=2000H+1234H+2=3236H9.执行如下程序:MOV AX , 0MOV BX , 1MOV CX , 100A:ADD AX , BXINC BXLOOP AHLT执行后〔BX〕= 参考答案为:CA.99B.100C.101D.102[解析]1 〕在进入循环之前,有三条指令分别初始化存放器:AX 为0、BX 为1 、CX 为100;2〕由于循环的限制局部采用的是LOOP 指令,该指令有使CX 减1,并判断其是否为0 的功能,所以可知该循环的执行次数为100 次;3〕循环体的主要功能是每次循环使AX 中的内容累加BX 的内容, 并使BX 的内容加1.4〕直到最后一次〔即第100 次〕循环时,加到AX 中的BX 的内容为100, 且使BX 加1,即变为101 后退出循环体.所以当执行完该段程序后, BX 的内容为101.5〕该段程序的功能是〔AX〕 =1 + 2+……+ 100 = 505010.上题的程序执行后〔AX 〕= 参考答案为:BA.5000B .5050C.5100D.5150[解析]请参看上题中的分析.正确答案:B.11 .对于以下程序段:AGAIN :MOV AL , [SI]MOV ES:[DI], ALINC SIINC DILOOP AGAIN也可用______ 指令完成同样的功能. 参考答案为:AA.REP MOVSBB.REP LODSBC.REP STOSBD .REPE SCASB[解析]该段程序的功能是将SI 所指向的数据段中的数据顺序传送给DI 所指向的附加段的一段数据区中,并且每次传送一个字节,即实现了字节串传送的功能,所以也可以使用REP MOVSB 指令来完成同样的功能.12.下面指令序列执行后完成的运算,正确的算术表达式应是MOV AL , BYTE PTR XSHL AL , 1DEC ALMOV BYTE PTR Y , AL 参考答案为:DA.y=x2+1B.x=y2+1C.x=y2-1D .y=x2-1[解析]该段程序的第一条指令的功能是将X 传送给AL ;第二条指令的功能是将AL 的内容左移 1 位,即使得AL 的内容扩大 2 倍;第三条指令的功能是使AL 的内容减 1 ;第四条指令的功能是将AL 传送给Y;综上所述该程序完成的运算是Y=2X-1 .13.在一段汇编程序中屡次调用另一段程序, 用宏指令比用子程序实现起来. 参考答案为:BA.占内存空间小,但速度慢B .占内存空间大,但速度快C.占内存空间相同,速度快D .占内存空间相同,速度慢[解析]1 〕宏指令简化程序的书写,不节省程序存储空间,但执行时间比子程序短.2〕子程序简化程序的书写,也节省程序的存储空间,但执行时间比宏指令长.14.在程序执行过程中, IP 存放器中始终保存的是参考答案为:BA.上一条指令的首地址B .下一条指令的首地址C.正在执行指令的首地址D .需计算有效地址后才能确定地址[解析]在程序运行过程中,它始终指向下一条指令的首地址,它与CS 代码段存放器联合确定下一条指令的物理地址.15.PSW 存放器中共有_______ 位条件状态位,有位限制状态位. 参考答案为:AA.6、38.3、6C.8、4D.4、8[解析]PSW 有6 位条件状态位:AF、CF、ZF、PF、SF、OF;PSW 有3 位限制状态位:IF、TF、DF16.以下指令执行时出错的是参考答案为:AA.ADD BUF1 , BUF28.JMP DWORD PTR DA T [BX]C.MOV AX , [BX+DI] NUMD.TEST AL , 08H[解析]ADD 指令的两个操作数不能同时是存储器操作数,所以选项 A 中的指令是错误的.17.〔AX 〕=1234H ,执行下述三条指令后, 〔AX 〕= 参考答案为:D MOV BX , AXNEG BXADD AX,BXA.1234HB.0EDCCHC.6DCCHD.0000H[解析]第一条指令的功能是将AX>BX ,即BX中的内容为1234H;第二条指令的功能是对BX求补,即BX中的内容变为一1234H;第三条指令的功能是AX+BX>AX ,即1234H+〔-1234H〕=gAX ;所以执行三条指令后, AX 的内容为0.18.在以下指令中, _____ 指令的执行会影响条件码中的CF 位. 参考答案为:D A.JMP NEXTB .JC NEXTC.INC BXD .SHL AX , 1[解析]JMP、JC指令不任何影响状态标志位;INC指令执行结果除不影响CF外,其余状态标志位〔AF、OF、PF、SF、ZF〕都受影响.SHL指令使CF=O, OF=O,影响ZF、SF、PF标志位,AF无定义.19.串指令中的目的操作数地址是由______ 提供. 参考答案为:CA.SS:[BP]B.DS:[SI]C.ES:[DI]D.CS:[IP][解析]略20.将DX 的内容除以2,正确的指令是参考答案为:CA.DIV 2B.DIV DX , 2C.SAR DX , 1D.SHL DX , 1[解析]选项 A 中的的指令执行的操作是:AX/2 ;选项 B 中的的指令书写格式不正确;选项 C 中的的指令执行的操作是:将DX 的内容右移一位,将使DX 的内容缩小为原先的1/2,即将DX 的内容除以2;选项 D 中的的指令执行的操作是:将DX 的内容左移一位,将使DX 的内容扩大为原先的 2 倍,即将DX 的内容乘以2.[解析]〔1〕指令:SHR DX, 1 使DX 的内容向右移动了一位,因此DX 的内容变为0000' 0000' 0101' 110OBD05CH.〔2〕指令:RCR DL, 1 使DL的内容向右循环带进位移动了一位, DH 的内容不变,因此DX 的内容变为0000’ 0000’ 1101’ 110,即0B 00DCH .〔3〕指令:RCL DX, CL 使DX 的内容向左循环带进位移动了 3 位,因此DX 的内容变为0000’ 0101’ 1100’ 110,即0B 05CCH.2.写出完成下述功能的程序段:〔 1 〕传送25H 到AL 存放器〔2〕将AL 的内容乘以2〔3〕传送15H 到BL 存放器( 4)AL 的内容乘以BL 的内容并请写出最后〔AX 〕=?答:〔1〕MOV AL, 25H( 5)SHL AL, 1( 6)MOV BL, 15H( 7)MUL BL最后, 〔AX〕=612H =1554[解析]1 〕将AL 的内容左移 1 位, 将使它的内容扩大 2 倍, 即使AL 的内容乘以2.2〕最后, AX 的内容应为25H*2*15H=612H=15543.写一程序段,求双字长数DX : bX的相反数.答:NEG DXNEG AXSBB DX, 0[解析 ]求双字长数 DX:AX 相反数,即对其求补,所以应实现的操作是:〔DX:AX 〕 - 0-〔DX:AX 〕 即 0 : 0 -〕 DX : AX将上面的算式分解后,即为对DX 求补,对AX 求补,并从DX 中减去将 AX 求补时产生的借位.所以相应的指令就是:NEG DX NEG AX SBB DX, 0 三,程序分析题〔每题 6 分,共 36 分〕1.现有如下程序段:DATA SEGMENT ORG 0020H DA1 DW 12H , 23H DA2 DB 11H , 21H注意: 程序是从左到右看, 先把左边的程序段看完了再看右边的程序段.下面的程序段以相同的方法进行读解.请答复: 〔 1〕该程序段已占有的存储字节数是多少? 〔 2〕符号名 D A4 的值是多少?符号名DA5 的值是多少?答: 〔1〕 该程序段已占有的存储字节数是 8 个字节.(2) 符号名 DA4 的值为 2,符号名 DA5 的值是 0026H .NUM DW 12H MOV CL , BYTE PTR NUM+1 …MOV CH , TYPE NUM MOV AX , NUMHLT请问: ( AX ) = _____, ( BX ) = ______, ( CX ) = ______.答: (AX)=0012H (BX)=1221H (CX)=0200H[解析]1 )指令 MOV AX, NUM 的功能是将 NUM 单元的字内容12H 传送给 AX ,使得 (AX)=0012H ;2) 指令 MOV BX, OFFSET NUM 的功能是将NUM 单元的偏移地址1221H 传送给DA3 EQU 1234H DA4 EQU $ -DA2 DA5 DB 31H , 32H DATA ENDS[解析 ]1 〕伪指令 ORG 0020H ,设置存储单元起始偏移地址为 2〕符号名 DA1 的值〔即所对应存储单元的偏移地址〕是为字,有 2 个字数据,所以共占用4 个字节;3〕符号名 DA2 的值〔即所对应存储单元的偏移地址〕是为字节,有 2 个字节数据,所以共占用2 个字节;4〕经 EQU 定义的符号名 DA3 、 DA4 不占用存储空间,数器的值〔 0026H 〕 ,可它们的值分别为 DA3=1234H, DA4=2 .5〕符号名 DA5 的值〔即所对应存储单元的偏移地址〕是为字节,有 2 个字节数据,所以共占用2 个字节;6〕综上所述,该程序段共占有的存储字节数 8 个字0020H ; 0020H ,该数据区的类0024H ,该数据区的类型$〞用来表示当前地址计 0026H ,该数据区的类型ORG 1221H MOV BX ,OFFSET NUMBX ,使得(BX)=1221H ;3)指令MOV CL, BYTE PTR NUM+1的功能是将NUM+1〔1222H〕单元的字节内容〔即NUM字单元的高字节〕00H传送给CL ,使得〔CL〕=00H ;4)指令MOV CL, TYTE NUM 的功能是将NUM 字单元的类型字节数2传送给CH,使得〔CH〕=02H ;5〕综合第4 和第5 点,可知CX 存放器的内容为0200H .3.阅读如下程序:ADRR DB XXH , XXH ,……,XXH CMP ADRR[BX] , 0NUM EQU $-ADRR LOOPZ DONRETT DB ?JNZ NEXT…MOV BL , OFFHMOV CX , NUM NEXT :MOV RETT , BLMOV BX , -1 HLTDON:INC BX请问:〔 1 〕该程序完成的功能是什么?〔2〕程序执行后指出RETT 字节单元中的内容是什么?答:〔1〕在以ADRR 为起始地址的数组中,查找第一个非0 数据.(2)假设找到那么将第一个非0 数据在数组中的偏移量送入RETT 单元中;假设无非0 数据,那么将OFFH 送入RETT 单元中.[解析]1〕程序的前 3 条指令,用于定义数据:以ADRR 为起始地址的数组;NUM 的值为ADRR 数组的数据个数;RETT 是一个空的字节单元2〕该程序的主体是一个循环,该循环的主要功能是在数组ADRR 中第一个非0 数据. 如果是由于找到,那么将第一个非0 数据在数组中的偏移量送入RETT 单元中;假设没找到非0数据,那么将OFFH 送入RETT 单元中.4.现有一子程序:SUB1 PROC PLUS:TEST BL, 80HTEST AL , 80H 〔检测AL 中的数值最高位〕JE EXITOJE PLUS XCHANGE :XCHG AL , BLTEST BL , 80H EXITO :RETJNE EXITO SUB1 ENDPJMP XCHANGE 试答复:〔1〕子程序的功能是什么?( 2)假设调用子程序前AL=9AH , BL=77H , 那么返回主程序时, AL= , BL= ____ .答:〔1〕子程序的功能是判别AL 和BL 中的数是否为异号数,当为异号时交换,否那么不变. 〔2〕 AL=77H, BL=9AH [ 解析]1 〕数据是以二进制的形式存储在计算机中的.数据对应的二进制数的最高位是数据的符号位:假设为0 表示该数为正数,假设为 1 表示该数为负数;2)TEST AL, 80H 和TEST BL,80H 指令是在测试AL 和BL 的最高位〔即符号位〕的状态是 1 还是0.3〕假设两个数的最高位〔即符号位〕的状态不同的时候〔即两数为异号〕,那么执行XCHANGE 标号所对应语句,即交换AL 和BL 中的内容.4〕否那么假设两个数的最高位〔即符号位〕的状态相同的时候〔即两数为同号〕 ,那么执行 EXIT0 标号所对应语句,程序结束,即 AL 和 BL 中的内容不被.5〕所以第二问中, AL=9AH,BL=77H : AL 中的数据的最高位为1, BL 中的数据的最高位为 0,即两个数为异号,所以要交换AL 和 BL 中的内容,即AL=77H,BL=9AH .5.阅读程序段:BLOCK DB 20H , 1FH , 08H , 81H , RESULT DB ? …START : LEA SI , BLOCK MOV CX , [SI] INC SI MOV AL , [SI]请问: 〔 1 〕该程序完成的功能是什么?〔 2〕该程序循环的次数是多少?答: 〔1〕 该程序完成的功能是从RESULT 单元中.〔2〕 该程序的循环次数是 1FH 〔 31〕 .[解析 ]1 〕指令 LEA SI, BLOCK 的功能是使 SI 指向了 BLOCK 数组的首单元; 2〕 指令 MOV CX, [SI] 的功能是将SI 指向单元的内容20H 传送给CX , 即 〔CX 〕=20H ;其后又有指令 DEC CX,使得CX 的内容变为1FH;再看循环体的限制局部采用的指令是 LOOP,可知,该循环的执行次数为 1FH 次;3〕循环体的主要功能是将 AL 中的内容与[SI]所指向数组的每一个数据进行比拟, 从数组中选出最小数保存在 AL 中.4〕由于比拟后采用的转移指令是JNG,所以该程序处理的显然是一组有符号的数据.6.阅读如下程序段,答复所提出的问题,假定X1 , X2, XN 为无符号数.ORG 100HBLOK DW X1 , X2 ,…,XN COUNT EQU ($ -BLOLOK ) /2 RESULT DW COUNT ,? LEA BX , BLOK-2 MOV CX , RESULT XOR AX , AXGOON : ADD BX , 2 CMP AX , [BX] JAE NEXT MOV AX , [BX] NEXT : LOOP GOON MOV RESULT+2 , AX 程序段执行完,答复下述问题RESULT+2 字存储单元的内容 = _____ BX= _____程序循环次数 = _____OFFH-LOP1 : CMP AL, [SI+1] JNG NEXTMOV AL , [SI+1] NEXT : INC SI LOOP LOP1 MOV RESULT , AL HLT20H 〔 32〕个有符号数中找出最小的数送入答:RESULT+2字存储单元的内容是MAX〔X1, X2, …XN〕BX= 100H + 2 X 〔COUNT-1〕 程序循环次数=COUNT[解析 ]1 〕该程序段的开始 4 条指令定义了以下数据:以 BLOK 为起始地址的字数组,该数组首单元的偏移地址〔即 BLOK 〕为 100H ;COUNT 的值为 BLOK 字数组的数据个数; RESULT 存储区的第一个字的内容为COUNT , 即 BLOK 字数组的数据个数; 第二个字的内容为空.2〕 循环体的主要功能是从 BLOK 字数组中找出最大数送入RESULT 的第二个字单元中;3〕循环次数为数组中数据的个数,即COUNT 个.4〕当循环结束后, BX 中将存放最后一个字数据的偏移地址:首字偏移地址+末字与首字的相隔的字节数,即100H + 2 XCOUNT-1〕.四,程序填空题〔注意:以下各小题中,每空只能填一条指令!每题6 分,共 12 分〕1.在表 TABLE 处存放着 N 个无符号字节数,求表中前10 个字节数的总和并保存在AX 存放器中.如果总和值超过 AX 存放器的容量,那么置 AX 存放器内容不变.请在程序中的空格处填入适当指令使其完整.LEA BX , TABLE MOV CX , 10 MOV SUM , AX MEXT : 〔 1〕 ADC AH , 0 JNC DON答: 〔1〕 ADD AL, [BX] 〔2〕 MOV AX, SUM 〔3〕 LOOP NEXT[解析 ]1 〕程序的前三条指令的功能分别是: 将表 TABLE 的首址传送给 BX ; 将循环次数传送给计数器 CX ; 将 AX 的原值保存在 SUM 单元中; 以上指令实现了设置循环初始参数的功能.2〕标号 NEXT 所对应的第一个空白处就是循环体的第一条指令.根据题目的要求—— 求表中前 10 个字节数的总和,可知循环每次应实现将表 TABLE 中的数据按字节加法 的方式进行累加到 AL 中,并且将字节加法产生的进位加到 AH 中.所以第一个空白处应填入指令:ADD AL, [BX]3〕程序的第五条指令实现的是判断求得的和是否超过AX 存放器的容量.4〕如果有进位〔即已超过 AX 存放器的容量〕 ,那么执行第二个空白处的指令,根据题目当出现此种情况时,使 AX 内容不变,即恢复其原值,因此第二个空白处应填入指令:MOV AX, SUM .5〕如果没有进位〔即未超过AX 存放器的容量〕 ,那么转 DON .程序将使BX 的内容加 1 ,即使其指向下一个表中的字节数据.接下来就应该将计数器 CX 减 1 ,并判断是否继续下一次循环.因此,第三个空白处应填入指令:LOOP NEXT .2. BEG 为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这 100 个字节数据.请在程序中的空格处填入适当的指令使其完整.MOV CX , 32H〔 2〕 JC END0 DON : INCBX 3〕 ENDO : HLTLEA SI, BEGMOV DI , SI(1)DON :MOV AL , [SI](2)MOV [SI] , AL(3)DEC DILOOP DONHLT答:(1) ADD DI, 99(2) XCHG AL, [DI](3) INC SI[解析]1) 题目要求:将以BEG 为起始地址的区域中的100 个字节数据首尾颠倒存放.例如,如果原先为X1,X2, X3,…,X98, X99, X100 ,那么首尾颠倒后将变为X100, X99, X98, ••• ,X3, X2,X1 .2)颠倒的方法是:将X1与X100对调、X2与X99对调、X3与X98对调、……,即将前一半的数据与后一半相应位置的数据对调.这个过程每次处理两个数据,所以共有( 100/2= ) 50 对数据对调.3)根据以上分析可知,这个循环将进行50 (32H)次,每次将相应的两个数据对调,这两个数据可分别由两个存放器来指向.4) 阅读程序可知, SI 存放器指向前一半中的某个数据, DI 存放器指向后一半中对应的数据.在循环的初始化局部,使应计数器CX 的值为50(或32H) , SI 指向第一个数, DI 指向最后一个数,所以第一个空白处应填入指令:ADD DI, 99 .5) 在循环体中,应首先交换SI 和DI 所指向单元的内容,然后使指针SI 加1、DI 减1,所以第二、三个空白处应填入指令:① XCHG AL, [DI]② INC SI五,编制程序题(第 1 小题6 分,第2 小题14 分,共20 分)1.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来.答: 1 .BEGIN :MOV AH , 1INT 21HCMP AL , ’ a’JB STOPCMP AL , ’ z’JA STOPSUB AL , 20HMOV DL , ALMOV AH , 2INT 21HJMP BEGINSTOP:RET[解析]1〕该程序设计的主体应是一个循环一一当输入字符的是小写字母〔a〜z〕时,就将其转换为大写字母来显示, 此过程循环进行,直到当输入的不是小写字母时, 程序结束.2〕输入一个字符的可使用DOS 的1 号功能实现:MOV AH, 1INT 21H该DOS 调用执行完后,会将输入的字符的ASCII 码值送入AL 存放器.3〕判断输入的是否为小写字母〔a〜z〕的方法:CMP AL, ‘ a’JB STOP ;不是小写字母时,转STOPCMP AL, ‘ z’JA STOP;不是小写字母时,转STOP…;是小写字母时,将其转换为大写显示STOP:RET ;不是小写字母时,程序结束4〕小写字母比大写字母的ASCII码值大20H,因此指令SUB AL, 20H ,将使AL 中的内容变为大写字母的ASCII 码值.5〕输出一个字符的可使用DOS 的2 号功能实现:MOV DL, ALMOV AH, 2INT 21H2.设在内存单元SQTAB首址开始存放了 .〜15的平方数表.要求用直接查表法编一程序, 求出A单元中给定数〔V =15 =的平方值送B单元保存.答:DATA SEGMENTSQTAB DB 0 , 1 , 4, 9, 16, 25, 36, 49, 64, 81DB 100, 121, 144, 169, 196, 225A DB 12B DB ?DATA ENDSCODE SEGMENTASSUME CS :CODE, DS:DATASTART PROC FARPUSH DXXOR AX , AXPUSH AXMOV AX , DATAMOV DS , AXMOV BX , OFFSET SQTABMOV AL , AXLATMOV B , ALRETSTART ENDPCODE ENDSEND START[解析]1〕根据题目的要求,应首先建立.〜15的平方数表以及A和B单元:SQTAB DB 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 ;平方数表DB 100, 121, 144, 169, 196, 225A DB 12 ;给定数〔<=15〕B DB ? ;存放A 中数的平方值的结果单元2〕A 中给定的数恰好是该数平方值在平方数表中的相对位置, 因此, 可通过换码指令XLAT 来实现从表中求平方值:MOV BX, OFFSET SQTABMOV AL, AXLAT。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17 DEC WORD PTRBX指令中的操作数的数据类型是
A字 B双字 C字节 D四字
18下面指令执行后变量DAB中的内容是
DAW DW 2A05H
DAB DB 0FAH
则在VAL存储区内前十个字节单元的数据是
A1,2,3,3,2,1,0,1,2,3 B1,2,3,3,3,3,2,1,0,1
C2,1,2,3,3,2,1,0,2,1 D1,2,3,3,3,1,0,1,0,1
20设NUM=60H表达式
NEXTSHL DX1
LOOP AG
请回答1该程序段的功能是什么 2若程序执行前 (AX)=1234H程序执行完后 (BX)=
3阅读下面的程序段 8分
BUF1 DB -12-34-56-78-9
DS=2300H DS=2300H DS=2400H DS=2300H
7执行下面指令语句则AX=
MOV AL95H
CBW
A0095H B0F95H C0FF95H D9095H
9设AX=1000H
NEG AX
NOT AX
执行上述指令后正确的结果是
AAX=1001H BAX=0FFFH CAX=1000H DAX=0111H
10完成将累加器AL清零并使进位标志CF清零下面错误的指令是
2指令指针寄存器是
ABP BIP CSP DPSW
3当堆栈为空时如SS=0805HSP=40H栈底字单元的物理地址是
A08090H B08089H C0808EH D08450H
ACX0且ZF0 BCX0且ZF1
CCX0或ZF0 DCX0或ZF1
14条件转移指令JBE产生转移的条件是
ACF=0 OR ZF=0 BCF=0 OR ZF=1
CCF=1 OR ZF=0 DCF=1 OR ZF=1
NUM LT 60H AND 30ORNUM GE 60H AND 40的值是
A0 B30H C40 D0FFFFH
二、填空题本大题共5小题每空1分共20分
1INTEL 8088 管理的存储器空间最大容量为______________I/O端口地址空间最大容量为
《汇编语言程序设计》试卷
模拟试卷一
一、单项选择题本大题共20小题每小题1分共20分
在每小题列出的四个选项中只有一个选项是符合题目要求的请将正确选项前的字母填在题后的括号
内。
1用户为了解决自己的问题用汇编语言所编写的程序称为
A目标程序 B源程序 C可执行程序 D汇编程序
8086 CPU中PSW内容如下
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
四、程序分析题本大题共3小题共20分
1阅读下面的程序段6分
NUM DB ?
填上适当的一条条件转移指令两空白处要利用不同的标志位选用不同的条件转移指令。
VAR1 DW ××××
VAR2 DW ××××

MOV AXVAR1
MOV BXVAR2
XOR AXBX

TEST BX8000H
AMOV AL,00H BAND AL,00H CXOR AL,AL DSUB AL,AL
11将CX寄存器低4位清零的正确指令是
AAND CX0F0H BAND CX0FFF0H CAND CX1110H DMOV CX0
8当执行指令ADD AXBX后若AX的内容为2BA0H设置的奇偶标志位PF1下面的叙述正确的

A表示结果中含1的个数为偶数 B表示结果中含1的个数为奇数
C表示该数为偶数 D表示结果中低八位含1的个数为偶数
3该程序段的功能是_____。
2 阅读下面的程序段 6分
MOV CX16
MOV BX0
MOV DX1
AGTEST AXDX
JZ NEXT
INC BX
③MOV AXBX 问AX=________H CF=________ ④NEG WORD PTR1200H 问(31200H)=________H CF=________
5设DS=2200HBX=1000HSI=0100H偏移量D=0A2B1H试计算出下列各种寻址方式下
(31202H)=40HCF0。请写出下列各条指令独立执行完后有关寄存器及存储单元的内容并指出标志
位ZF、CF的值。
①ADD AX1200H 问AX=________H ZF=________
②SUB AXBX 问AX=________H ZF=________
:
MOV ALBYTE PRT DAW
SUB DABAL
A0DAH B0FAH C0F5H D0D0H
19 使用汇编语言的伪操作命令定义
VAL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0))

MOV AX0
NEXT??
2已知数据段DAT单元存放某一数N-6≦N≦6下面的程序段用查表法求数N的平方值结果送SQR
单元请将程序填写完整。
TABLE DB 0, 1, 4, 9, 16, 25
DAT DB N
CMOV ALBX DMOV WORD PTR [BX]0100H
6已知CS=2300HDS=2400H执行下列指令序列后CS和DS值是
PUSH CS
POP DS
ACS=0 BCS=2400H CCS=2400H DCS=2300H
4下面指令中源操作数的寻址方式为立即寻址的是
AMOV AXOFFSET A BMOV AXA
CMOV AXA+1 DMOV AXABX
5下面各传送指令中正确的是
AMOV [DI][SI] BMOV [DX+DI]AL
INC SI
LOOP LOP
??
1写出程序运行后BUF2中的各字节数据
2BL=______________
五、程序填空题本大题共2小题每小题6分共12分
1下面程序段是判断两个存储单元是否同为正数如是则AX置全0否则AX置非0。试在空白处各
PSW的内容是什么栈顶的三个字是什么画出堆栈示意图
PC机内存中的一段数据如下
00000040 B3 18 8A CC 4D F8 00 F0--41 F8 00 F0 C5 18 8A CC
00000050 39 E7 00 F0 A0 19 8A CC--2E E8 00 F0 D2 EF 00 F0
的有效地址填入横线上。
①使用D的直接寻址 ________
②使用BX的寄存器间接寻址 ________
③使用BX和D的寄存器相对寻址 ________
④使用BX、SI和D的相对基址变址寻址 ________
BUF2 DB 9 DUP(0)

XOR BLBL
MOV SI0
MOV CX9
LOPMOV ALBUF1[SI]
TEST AL80H
JZ K
INC BL
NEG AL
KXOR AL01H
MOV BUF2[SI]AL
MOV AH1
INT 21H
CMP AL39H
JBE NEXT
SUB AL7
NEXTSUB AL30H
MOV NUMAL
上述程序段运行后
1若输入’F’则NUM=_____ 用二进制表示
2若输入’8’则NUM=_____ 用二进制表示
_____________。
2在8086/8088汇编语言中有五条串操作指令其中搜索字符串指令的助记符是______。
38086/8088存储器分四个段这四个段的段名所对应的段寄存器分别是________、________、________、
________。
4现有AX=2000HBX=1200HDS=3000HDI=0002H(31200H)=50H(31201H)=02H
12执行后使BX=0的同时也使CF=0OF=0的指令是
AXOR BXBX BOR BXBX
CAND BXBX DCMP BXBX
13在串操作指令前使用重复前缀指令REPE终止串的重复操作条件是
15比较BX和SI中的两个存储器地址若BX≥SI转向HIGH的正确指令是
AHIGH BJBE HIGH CJEG HIGH DJLE HIGH
16循环指令Loop规定循环次数必定在寄存器
ADX中 BDL中 CCX中 DCL中
⑤使用BX、SI的基址变址寻址 ________
三、简答题8分
设当前SP=0100HSS=0300HPSW=0240H在内存段地址为0900H及偏移地址为00A0H
的单元中有一条中断指令INT 11H该指令占两个字节试问执行这条INT 11H指令后SP、CS、IP、
相关文档
最新文档