汇编语言程序设计方案考试考试集_第1页
汇编语言程序设计方案考试考试集_第2页
汇编语言程序设计方案考试考试集_第3页
汇编语言程序设计方案考试考试集_第4页
汇编语言程序设计方案考试考试集_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/15用高级语言编写的程序(A.只能在基本种计算机上运行C.具有通用性和可移植性)。C.模拟语言D.仿真语言

)。B.用高级语言编写的程序(A.只能在基本种计算机上运行C.具有通用性和可移植性)。C.模拟语言D.仿真语言

)。B.不带输入输出设备的计算机D.计算机主机暴露在外)两大部分。B.操作系统和计算机语言D.DOS和Windows计算机系统软件中的汇编程序是一种(A.C.假设A.C.)。汇编语言程序B.编辑程序翻译程序D.将高级语言转换成汇编程序的程序V1和V2是用DW定义的变量,下列指令中正确的是:(MOVV1,20H B.MOVV1,V2MOVAL,V1 D.MOV2000H,PC机所使用的标准键盘向主机发送的代码是(A.ASCII码B.扫描码C.BCD码8086CPU中断号为8的中断矢量存放在(A.0FFFFH:0008HC.0000H:0020H已知变量VAR为字型,则TYPEA.1B.2V2)D.格雷码B.D.VAR=(C.3)。0000H:0020H:)。0008H0000HD..5..10.11.12.13.14.15.16.第四章汇编语言程序设计习题集单项选择题)。无需经过编译或解释,即可被计算机直接执行D.几乎不占用内存空间一般地,我们将计算机指令的集合称为(A.机器语言B.汇编语言我们通常所说的“裸机”指的是(A.只装备有操作系统的计算机未装备任何软件的计算机计算机的软件系统一般分为(A.系统软件和应用软件C.程序和数据汇编语言源程序经MASM汇编后可直接生成的文件是()。A..LST B..CRFC..EXED..OBJE..ASM F..MAP段定义语句以(A.END若主程序段中数据段名为段定义语句以(A.END若主程序段中数据段名为A.MOVAX,DATAMOVES,AXC.PUSHDS.EXE文件产生在(A.汇编B.编辑定义双字变量的定义符是(A.DWB.DQB)语句结束。B.ENDSC.ENDPDATA,对数据段的初始化操作应为

B.MOVAX,DATA

MOVDS,AXD.MOVDS,DATA)之后。C.用软件转换D.连接)。C.DDD.DTD.ENDM

)。假设VAR为变量,指令MOVBX,OFFSETVAR的寻址方式是()。A.直接寻址 B.间接寻址 C.立即寻址 D.存储器寻址执行下列指令:STR1DW‘AB'STR2DB16DUP(?)CONTEQU$-STR1MOVCX,CONTMOVAX,STR1

HLT后寄存器CL的值是()。A.12H B.0EHC.0FHD.10HTOC\o"1-5"\h\z17.与MOVBX,OFFSETVAR指令完全等效的指令是( )。A.MOVBX,VAR B.LDSBX,VARC.LESBX,VAR D.LEABX,VAR在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是( )。A.WORDB.PAGEC.BYTED.PARABUFDW10HDUP(3DUP(2,10H),3,5)上述语句汇编后,为变量BUF分配的存储单元字节数是( )。A.80HB.100HC.124D.192在汇编语言程序的开发过程中使用宏功能的顺序是( )。A.宏定义,宏调用 B.宏定义,宏展开C.宏定义,宏调用,宏展开 D.宏定义,宏展开,宏调用汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( )。A.名字项B.操作项C.操作数项D.注释项编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有()。A.CMPB.SUBC.ANDD.MOV23.为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是(A.INCCXJZMINUS B.SUBCX,OFFFFHJZMINUSC.ANDCX,C.ANDCX,OFFFFHJZMINUSXORCX,OFFFFHJZMINUSF.DT)进行。F.DT)进行。D.指令队列E.其他)。24.假设V1和V2是用DW定义的变量,下列指令中正确的是()A.MOVV1,20H B.MOVV1,V2C.MOVAL,V1 D.MOV2000H,V2多项选择题(每题有多个正确答案,选出所有正确答案,多选.少选均不得分)1.变量定义的伪指令助记符有:()。A.DB B.DWC.DDD.DF E.DQ2.主程序与子程序之间传递参数可通过(A.堆栈B.存储器单元C.通用寄存器3.交换寄存器SI.DI的内容,正确的程序段是(

A.PUSHSIB.PUSHSIPUSHDIPUSHDIPOPSIPOPDIPOPDIPOPSIC.MOVAX,SID.MOVAX,SIMOVSI,AXMOVBX,DIMOVDI,AXXCHGBX,AX过程(子程序)调用的形式有( )。A.段内直接 B.段内间接 C.段间直接 D.段间间接填空题当要求段的首地址只能被 16整除时,需选择的定位方式为 。程序段VAR1DB?VAR2DW20DUP(58H,2DUP(?))VAR3DB'ABCDMOVAX,TYPEVAR1MOVBX,TYPEVAR2MOVCX,LENGTHVAR2MOVDX,SIZEVAR2MOVSI,LENGTHVAR3AX=,BX= ,CX= ,DX=,SI=段定义伪指令语句用 语句表示开始,以语句表示结束。ARRAYDW10DUP(5DUP(4DUP(20H,40H,60H)))语句执行后共占 字节存储单元。汇编语句中,一个过程有 NEAR和FAR两种属性。NEAR属性表示主程序和子程序 ,FAR属性表示主程序和子程序 。DOS系统功能号应放在_aL寄存器中。子程序又称过程,它可以由 语句定义,由_reL语句结束,属性可以是或 。与指令MOVBX,OFFSETBUF功能相同的指令是 。设有伪指令 ADB01H,23H,则执行指令BDW2DUP(0)MOVAL,TYPEA后,(AL)= ;MOVBL,SIZEB后,(BL)= 。根据下面的指令和伪指令序列, AX寄存器的内容 TABDB1,2,3,4,5,6ENTRYEQU3MOVBX,OFFSETTAB..&9.10.ADDMOVBX,ENTRYAX,WORDPTR[BX]11. 将下列文件类型填入空格:(1).obj(2).exe(3).erf(4).asm(5).1st(6).map编辑程序输出的文件有12.四、..9.样的。10.连接程序输出的文件有数据段中有以下定义:ARRAY1EQU16HARRAY2DW16H请指出下面两条指令的寻址方式:MOVAX,ARRAY1;寻址方式: MOVAX,ARRAY2;寻址地址: 判断(正确的在括号画“V”,错误的画“X”)汇编语言程序语言必须由四部分组成。汇编语言源程序中所使用的变量,必须在代码段中先定义,后引用在汇编语言中,一般伪指令语句放在代码段中逻辑操作符AND、OR、XOR或NOT,只能用于数字表达式。符号定义语句不占内存单元,变量定义语句占内存单元。汇编语言源程序中至少有一个代码段。伪指令是指示性语句伪指令BVAR:DB伪指令DAT1DB7,,不产生机器目标代码。'ABCD'200DUP(?)是合法伪指令。8,9,10与DAT1DW07H,08H,09H,))))))))1曰.(°((((((:(0AH所预置的数据是一)256个中)(8086CPU的中断向量表共占有1024个字节(00000H—003FFH),所以共有断。 (五.程序分析题1. 执行下面的程序段后,CX的内容是(DAT1 DB12H,34H,56HN=$-DAT1MOV执行下面的程序段后M1MOVMOVMOVMOV源程序如下:STRDBMOVBXMOVAL,PUSHAXCX,N,AX的内容是(),BX的内容是().DB12H,34HSI,OFFSETM1AX,0AL,[SI]BX,WORDPTR[SI]ABCDEF0123456789OFFSETSTR65HANDAL,0FHXLATMOVDL,ALPOPAXADDAL,08HDAAMOV DH,ALCMPDH,32H执行上面程序段后,(DL)=(),(DH)=()。4.MOVAX,SEGTABLE;MOVES,AXMOVDI,OFFSETTABLEMOVAL,‘0'MOVCX,100CLD源程序如下:TABLE为表头REPNESCASB问:1)该段程序完成什么功能?(2)该段程序执行完毕之后,ZF和CX有几种可能的数值?各代表什么含义?(5.源程序如下:DATASEGMENTS9DB0,1,2,3,4,5,6,7,8,9DATAENDSLEASI,S9LEA,DI,S9+1MOVCX,5LOP:MOVAL,[SI]XCHGAL,[DI]MOV[SI],ALADDSI,2ADDDI,2LOOPLOP上述程序段运行后,S9开始的10个字节存储单元内容是什么? ( )6.源程序如下:MOVAL,38HMOVBL,49HCALLSUBOINCALDECCLIIISUBOPROCADDAL,BLMOVCL,ALDAARETSUBOENDP上述程序段运行后,AL=(),CL=( )7.源程序如下:DA3EQUWORDPTRDA4DA4DB0ABH,89HIIISHRDA3,1MOVDX,DA3SHLDA4,1MOVCX,DA3上述程序段运行后,CX=( ),DX=( )8.下面程序是将10个8位无符号数按递减次序排序,请将程序填写完整。DATASEGMENTARRAYDB05H,78H,FFH,7BH,00HDB8CH,20H,A0H,F0H,60HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARSTART:PUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXAB1:MOVSI,OFFSETARRAYMOVBL,0MOVCX,10

()AGAIN:MOVAL,[SI]INCSICMPAL,[SI]()CD1MOVAH,[SI]MOV[SI],ALDECSIMOV[SI],AHINCSIMOVBX,1CD1:LOOPAGAINDECBL( )AB1RETMAINENDPCODEENDSENDSTART9. 下面的程序段是统计9. 下面的程序段是统计AX中16位二进制数1的个数,并将结果放在CX中,填空使程序完成预定的功能。XORCX,CXL1:ANDAX,AXJZSTOP完成预定的功能。XORCX,CXL1:ANDAX,AXJZSTOPSHLAX,1(INCCXL2: JMP L1STOP:HLT最后结果用双字表示,存在YAH和YAL单TABLEDW34,789,67,78,345,89,78,60YAHDW0YALDW0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,0XORAX,AX;清AXMOVBX,OFFSETTABLEMOVCX,8CLCLP:ADDAX,[BX]()()DON:INCBXINCBXLOOPLPMOVYAL,AX;存和10. 下面的程序段是求8个无符号数累加和元,填空使程序完成预定的功能。DATA SEGMENTMOVAL,BY0CMPAL,BY1JNCL1MOVAH,BY1MOVBY1,ALMOVAL,AH11.MOV YAH,DXMOV AH,4CHINT 21HCODEENDSEND START两个非组合BCD11.MOV YAH,DXMOV AH,4CHINT 21HCODEENDSEND START两个非组合BCD数(BY0,BY1)进行十进制减法,并将差求绝对值后保存在SD单丿元。L1:SUB AL,L1:()MOV SD,AL12. 附加段有一块长50个字的数据区,首址为DEST,现将数据区初始化为0FFFFH。LEADI,DESTMOVCX,50*2CLDMOVAL,0FFH()13. 下面是某数据段定义,在表中标出各字节单元的值,并回答问题。DATASEGMENTPADB1PBDW5PPEQU2PCDBPPDUP(0)DATAENDS偏移值+001H+105H+200H+300H+400HTYPEPA=()TYPEPB=()SIZEPA=()SIZEPB=()SIZEPC=()14.源程序如下:MOVCL,4MOVAX,[2000H]TOC\o"1-5"\h\zSHLAL, CLSHRAX, CLMOV[2000H],AX则执行后有试问: 若程序执行前,数据段内 (2000H)=09H, (2001H)=03H,则执行后有(2000H)= ,(2001H)= 。本程序段的功能 。15.阅读程序,并完成以下要求(10分)MOVCL,04HMOVDX:,1234HMOVAX:,5678HSHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BLA) (DX)=. ,(AX)= B)由上面的结果可以看出该程序的功能是: 源程序如下:(6分)MOVCX,9MOVAL,01HMOVSI,1000HNEXT: MOV[SI],ALINCSISHLAL,1LOOPNEXT试问: 执行本程序后有:AL= ;SI= ;CX= :本程序的功能是 。设某数据段:DATASEGMENTORG20HNUM1=8NUM2=NUM1+10HDA1DB'COMPUTER'DBOAH,ODHCOUNTEQU$-DA1DA2DWCO','MP','UT','ER'DATAENDS试回答:(1)DA1的偏移地址是: (2)COUNT的值是 (3)DA2+5字节单元的内容是 18.从BUF开始的11个单元中存放着11个整数,找出这11个数中正数并且是偶数的个数存入R中。DATASEGMENTBUFDB25,-3,6,100,0,-20,-9,8,-110,21N= RDW?DATAENDSCODESEGMENTBEGIN:MOVAX,DATALEABX,BUFMOVCX,NLOPA:CMP[BX],BYTEPTR0NEXTTEST[BX],BYTEPTR1INCAXINCBXDECCXMOVR,AXMOVAH,4CHINT21HCODEENDS19.END对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?为什么?DTSEGSEGMENT |DTSEGSEGMENTORG 10H |ORG 10HDATA1DB72H |DATA1DW7204H

DB04HDTSEGENDSDB04HDTSEGENDSDTSEGENDS(20.内存单元初始化内容为: (2000H:2A00H)--(2000H:2A02H)分别为OFH、OEH、0DH,(2000H:2A10H)--(2000H:2A12H)分别为09H、08、07H。执行下列程序后,请填写存储单元的内容:MOVAX,2000HMOVDS,AXMOVES,AXMOVSI,2A10HMOVDI,2A00HCLDMOVCX,3L:MOVAL,[DI]MOVSBDECSIMOV[SI],ALINCSILOOPLHLT(1)2000H:2A00H=⑵2000H:2A11H=(3)2000H:2A12H=六・简答题1. 有变量定义的伪指令如下:NUMSDW18DUP(4DUP(5),23)VARDB'HOWAREYOU!',0DH,0AH试问:NUMS、VAR变量各分配了多少存储字节?1、在指令系统中,段内、段间返回均为 RET指令。试回答:执行段内返回RET指令时,执行的操作是?执行段间返回RET指令时,执行的操作是?ARYDW10DUP(?)MOVAL,TYPEARYMOVBL,LENGTHARY;MOVCL,SIZEARY;上述MOV指令序列执行后的结果是什么?已知某数据段定义如下:DSEG SEGMENTORG00HDAT1DW4,26ORG06HDAT2DW5678HDB‘AB'DSEGENDS要求:用内存分配示意图,说明该数据段的存储器分配情况。5. 读程序,并回答问题DATASEGMENTTABLEDB0,1,4,9,16,25,36,49,64,81,100XADDB3YADDB?DATAENDSSTACKSEGMENTSTACK'STACK'STADB16DUP('STACK')STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKMAINPROCFARSTART:PUSHDSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV BX,OFFSETTABLEMOV AH,0MOV AL,XADADD BX,AXMOV AL,[BX]MOV YAD,ALADD AL,30HMOV DL,ALMOV AH,02HINT 21HRETMAINENDPCODEENDSENDSTART(1).在存储器中分别为table、xad、yad、sta分配多少字节单元?(2).程序运行后,xad、yad,单元中的值为多少?屏幕上显示的字符是什么?6.下面的程序是将表中元素按值的大小升序排序。要求填空 (1)和(2)使程序按预定目标运行;(3).程序运行后,显示结果为什么?CODESEGMENTASSUMECS:CODESTAR:JMPSSTTASCIIDB'GFBACXYD6291','$'COUNT=$-ASCII-2TOC\o"1-5"\h\zSSTT:MOV AX,CSMOV DS,AXMOV DL,COUNTMOV DH,1;设交换标志 =1XOR BX,BXL0:ORDH,DH

JZL3MOVDH,0MOVCX,COUNTSUBCX,BXMOVSI,OFFSETASCIIMOVAL,[SI]INCSICMPAL,[SI]JBEL2 ;小于XCHGAL,[SI](1)MOV[DI-1],ALMOVDH,1LOOP(2)L1INCBXDECDLJNZL0MOVDX,OFFSETASCIIMOVAH,9INT21HMOVAH,4CHINT21H ;返回DOENDPENDSTARL1:L2:L3:CODEAy7.阅读下面的程序,回答问题.MODELSMALL.386.STACK.DATASTRINGDB'AssembleLanguageispowerful'N=$-STRINGNEWSTRDBNDUP(0).CODE.STARTUPMOVCX,NLEASI,STRINGLEADI,NEWSTR.REPEATMOVAL,[SI].IF(AL>='a')&&(AL<='z')SUBAL,32.ENDIFMOV[DI],ALINCSIINCDI.UNTILCXZ.EXITEND【问题】写出程序功能,程序执行后,从NEWSTREND【问题】写出程序功能,程序执行后,从NEWSTR开始的N个字节中的内容是什么?..2.13.14.15.七.编程题将AL中的数,高4位保持不变,低4位置零。从1000H单元开始,连续存放100个字符串,要查出第一个$符号,编程序将第一个$字符地址送BX中。从地址2100H单元开始,连续存放8个字节的无符号数,现在用BX作地址指针,编程序求和,并将结果存在210AH单元中。将连续存放在2000H单元开始的两个16位无符号数相乘,结果存放在两个数之后。检查AX中的第2位(bite2),为零时,把DH置0;为1时,把DH置1。假设某班80个学生某门课的成绩存放在数据区BUF开始的字节单元中,请编程统计小于60分的人数,6080分的人数,大于80分的人数,并将统计结果分别存于S1、S2、S3字节单元中。 要求写出注释。从2000H单元开始的区域,存放100个字节的字符串,其中有几个#符号(#的ASCII码为23H),将第一个#符号替换成0,并将地址送DX,试写出程序段。DAT为首地址的两个存储单元存放了两个无符号字节数,求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论