第三章微机原理 习题课_第1页
第三章微机原理 习题课_第2页
第三章微机原理 习题课_第3页
第三章微机原理 习题课_第4页
第三章微机原理 习题课_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

第三章习题课一、选择题1、在汇编语言程序的开发过程中使用宏功能的顺序是(C)。A、宏定义,宏调用 B、宏定义,宏展开C、宏定义,宏调用,宏展开 D、宏定义,宏展开,宏调用2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是(B)。A、名字项 B、操作项 C、操作数项 D、注释项3、下列叙述正确的是(C)A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令4、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D).A、CMP B、SUB C、AND D、MOV5、测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是(B)。ATESTBL,4FHJZNEXTBXORBL,4FHJZNEXTCANDBL,4FHJZNEXTDORBL,4FHJZNEXT6、检查BUF的内容是否为正偶数,如是正偶数,则令AL=0。下面程序段正确的是(C)。A、MOVAL,BUFJSK1SHRAL,1JNCK1MOVAL,0K1:……B、MOVAL,BUFANDAL,11JNZK2MOVAL,0K2:……D、MOVAL,BUFJNPK4TESTAL,80HD、MOVAL,BUFJNPK4TESTAL,80HJNZK4MOVAL,0K4:……TESTAL,81HJNZK3MOVAL,0K3:……7、下列描述中,执行循环的次数最多的情况是(A)。A.MOVCX,0B.MOVCX,1LOP:LOOPLOPLOP:LOOPLOPC.MOVCX,0FFFFHD.MOVCX,256LOP:LOOPLOPLOP:LOOPLOP8、在下列指令中,D指令的执行会影响条件码中的CF位。A.JMPNEXTB.JCNEXTC.INCBXD.SHLAX,19、下列指令执行时出错的是(A)。A.ADDBUF1,BUF2B.JMPDWORDPTRDAT[BX]C.MOVAX,[BX+DI]NUMD.TESTAL,08H10、在下列指令的表示中,不正确的是(C)。A.MOVAL,[BX+SI]B.JMPSHORTDONIC.DEC[BX]D.MULCL11、在进行二重循环程序设计时,下列描述正确的是(A)。A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内B.外循环初值应置外循环之内;内循环初值应置内循环之内C.内、外循环初值都应置外循环之外D.内、外循环初值都应置内循环之外,外循环之内12、下面是多字节加法程序,第一个数是8A0BH,第二个数是D705H。DATA SEGMENTFIRST DB(1),(2),0HSECONDDB(3),(4)DATA ENDSCODE SEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA MOVDS,AX MOVCX,(5) MOVSI,0 (6)NEXT:MOVAL,SECOND[SI] ADCFIRST[SI],AL INCSI LOOPNEXT MOVAL,0 ADCAL,(7) MOVFIRST[SI],AL MOVAH,4CH INT21HCODE ENDS ENDSTART请选择正确的答案填入空格中:(1)A)8AHB)0BH C)D7HD)05H(2)A)8AHB)0BHC)D7HD)05H(3)A)8AHB)0BHC)D7HD)05H(4)A)8AHB)0BHC)D7HD)05H(5)A)3B)2C)1D)4(6)A)CLCB)CLDC)STCD)CLI(7)A)1B)-1C)0D)0FFH二、填空题1、指令JMPFARPTRDONE属于(段间转移直接)寻址。2、检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMPAL,BL”指令后应跟的分支指令是(JCLOP1)3、下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为()。TESTBH,01H__JNE_K14、循环指令LOOPNZ终止循环的条件是(

CX=0,或ZF=1

)。5、条件转移指令JNE的测试条件为(ZF=0)。6、执行如下程序:MOVAX,0MOVBX,1MOVCX,100A:ADDAX,BXINCBXLOOPAHLT执行后(BX)=(101)。上题的程序执行后(AX)=(5050)。7、执行下面的程序段后,AL______。BUFDW2152H,3416H,5731H,4684HMOVBX,OFFSETBUFMOVAL,3XLAT8、是过程定义结束伪指令,其前面需要加配套使用。是段定义结束伪指令,其前面需要加配套使用。9、设VALAEQU200VALBEQU30VALCEQU1BH下列表达式的值各为多少?(2)(VALBAND0FH)OR(VALBXOR0FH)(3)(VALAGEVALB)AND0FH三、程序阅读与设计1、设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。TESTAX,8000H__JEK1或JZK1_________MOVPLW,BXJMPDONEK1:__MOVPLW,A___________DONE:2、MOVDL,ALNOTDLTESTDL,04HJENEXT

┇NEXT:…若上述程序段执行时产生分支,说明AL中的数第位一定为1?程序段执行后CF是?第2位;CF=03、下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。试把空白处填上适当指令。___XORAH,AL____ANDAH,08H____JEZERO_____MOVAH,OFFHJMPNEXTZERO:MOVAH,0NEXT:……4、ANDAL,ALJZBRCH1RCRAL,1JZBRCH2RCLAL,1INCALJZBRCH3:上述程序运行后,试回答:(1)当(AL)=__0________时,程序转向BRCH1(2)当(AL)=__1________时,程序转向BRCH2(3)当(AL)=__-1________时,程序转向BRCH35、下列语句在存储器中分别为变量分配多少字节空间?VAR1 DB10,2VAR2 DW5DUP(?),0VAR3 DB‘HOWAREYOU?’,’$’VAR4 DD-1,1,0VAR1分配的字节空间为字节;VAR2分配的空间为字节;VAR3分配的空间为字节,VAR4分配的空间为字节。6、以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。BUFDB5,6,7,58H,62,45H,127,……COUNTEQU$-BUFMAXDB?┇MOVBX,OFFSETBUFMOVCX,____COUNT-1_MOVAL,[BX]LOP1:INCBX____CMPAL,[BX]_________JAENEXTMOVAL,[BX]NEXT:DECCX_____JNZLOP1________________MOVMAX,AL7、请在图中正确填写执行这些伪指令后数据区的内容STRING1DB‘ABCD’STRING1STRING2STRING2DW‘ABCD’8、读下面的程序并要求:(1)在每条语句后给出作用释。(2)画出程序流程图。(3)回答该程序完成什么功能?DSEGSEGMENTNUM1DW500DUP(?)NUM2DB150DUP(?)DSEGENDS

CSEGSEGMENTASSUMECS:CSEG,DS:DSEGMAINPROCRARSTART:PUSHDSXORAX,AXPUSHAXMOVCX,64HMOVBX,300MOVSI,0MOVDI,0NEXT:MOVAL,BYTEPTRNUM1[BX][SI]ADDAL,ALMOVNUM2[DI],ALINCDIINCSILOOPNEXTRETMAINENDPCSEGENDSENDSTART答:这个程序是将数据段中有效地址从NUM1+300开始的连续100个任意8位二进制数分别乘以2后,存放到数据段中有效地址从NUM2开始的连续100个字节单元。9、程序中下列语句在编译后装入内存时,操作系统为每个变量分配多少字节存储单元?前15个字节中的内容是什么?ABC1DW0AHXYZ1DB4DUP(?)STR1DB“errora!”,“$”STR2DB“OK!”ABC2DD1,2,8150H答:ABC12字节,XYZ14字节,STR19字节,STR23字节,ABC212字节。10.试用数据定义语句DB或DW改写下述两语句中的某一个,使它们在存储器中有完全相同的存储情况。VAR1DB‘abcdefghij’VAR2DW6162H,6364H,6566H,6768H,696AH答:将第一个伪指令语句改写为VAR1DW‘ba’,‘dc’,‘fe’,‘hg’,‘ji’,第二个伪指令语句不变。或第一个伪指令语句不变,而将第二个伪指令语句改写为:VAR2DB62H,61H,64H,63H,66H,65H,68H,67H,6AH,69H11、下面程序的功能是什么?MOVCH,4LAB:MOVCL,4ROLBX,CLMOVDL,BLANDDL,0FHADDDL,30HCMPDL,3AHJLPRINTADDDL,7PRINT:MOVAH,02INT21HDECCHJNZLAB显示输出BX寄存器里的内容12、阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。ORG100HBLOKDWX1,X2,…,XNCOUNTEQU($-BLOLOK)/2RESULTDWCOUNT,?……LEABX,BLOK-2MOVCX,RESULTXORAX,AXGOON:ADDBX,2CMPAX,[BX]JAENEXTMOVAX,[BX]NEXT:LOOPGOONMOVRESULT+2,AX程序段执行完,回答下述问题RESULT+2字存储单元的内容=______BX=______程序循环次数=______答:RESULT+2字存储单元的内容是MAX(X1,X2,…XN)BX=100H+2×(COUNT-1)程序循环次数=COUNT13、某程序欲用单个字符显示的2号功能调用去显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!).试在空白处填上适当的一条指令。

STRINGDB‘COMPUTER’,‘$’

MOVBX,0FFSETSTRING

LOP:MOVDL,[BX]

MOVAH,02H

INT21H

_____INCBX_______________

_____CMP[BX],24H________JNELOP14、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。答:BEGIN:MOVAH,1INT21HCMPAL,’a’JBSTOPCMPAL,’z’JASTOPSUBAL,20HMOVDL,ALMOVAH,2INT21HJMPBEGINSTOP:RET15、现有下列数据段:DATASEGMENTSTR1DB‘ABCDEFGHIJKL'COUNTEQU-STR1BUFDBCOUNTDUP(0)DATAENDS下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。MOVSI,OFFSETBUF-1MOVDI,OFFSETBUFMOVCX,COUNT___CLD_或STD_____LOP:MOVSB______SUBSI,2__或____ADDD

温馨提示

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

评论

0/150

提交评论