汇编期末复习题(含答案版)
汇编语言复习题(带答案)

汇编语言复习题(带答案)汇编语言期末复习题第1章:基础知识1、在汇编语言程序的开发过程中使用宏功能的顺序是( C )。
DXA、宏定义,宏调用B、宏定义,宏展开C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。
DXA、名字项B、操作项C、操作数项D、注释项3、可屏蔽中断就是它的请求是否被CPU响应要受( IF )的控制。
DX4、使用LINK连接命令,执行后可生成文件的扩展名为( EXE )。
DX5、在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数在堆栈段中,段地址在 SS 寄存器中。
TK6、注释项用于说明程序段或是一条和几条指令的功能,一般用;(或分号) 表示注释的开始。
TK7、DOS系统功能调用方式为:(1)置入口参数;(2)中断程序编号送 AH 寄存器后执行INT 21H。
TK8、通常主程序和子程序间参数传送的方法有三种:用寄存器传递、用存储单元传递、用堆栈传递(顺序可调换)。
TK9、中断是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。
在此,称引起紧急事务的事件为中断源。
TK10、在字符串操作指令中,DS∶ SI 指向源串,ES∶ DI 指向目的串。
TK11、计算机系统通过接口与外围设备通信。
TK12、键盘I/O、显示I/O和打印I/O分别对应 16H 、 10H 和 17H 号中断。
TK13、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。
每个字的第一个字节为显示字符的 ASCII码,第二个字节为显示字符的属性。
TK14、简述上机运行汇编语言程序的过程。
JD答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe文件,最后再运行。
汇编期末复习(含答案)

2. 选择题(1) 逻辑地址是(D) 地址。
A. 信息在存储器中的具体B. 经过处理后的20位C. 允许在程序中编排的D. 段寄存器与指针寄存器共同提供的(5) 用REPNE CMPSB指令作两个字符串比较时,如果CX≠0,比较结束,其原因是(A) 。
A. 出现两个相等字符B. 两个字符不等C. 两个字符串长度不等D. 字符串中全部字符比较结束(8) 设BL=05H,要使BL=0AH,应该执行的指令是(C) 。
A. NOT BLB. AND BL,BLC. XOR BL,0FHD. OR BL,0FH(10) 下面有一条指令是错误的,找出( C )。
A. INC CLB. MOV AX,DSC. SHR AX,2D. SHR AX,CL(12) I/O 指令使用寄存器存放端口地址时,必须使用( A ) 寄存器。
A. DXB. CXC. AXD. SI3. 判断题(2) 对于所有的存储器寻址方式,都可以采用段超越前缀。
( × )(4) 换码指令可将累加器AL中的一个值/码转换为内存表格中的另一个值/码,但不送回AL。
( × )(5) 使用MOV AH,4CH和INT 21H两条指令返回DOS不会造成死机。
( √ )(6) 8086的循环控制指令必须以DX作计数器,控制循环次数,且目标地址偏移范围在-128~+127之间。
( × )4. 指出下列指令的错误(4) MOV MYDAT[BX][SI],ES:AX④错:源操作数AX是寄存器操作数,不是存储器操作数,不能用段跨越前缀,应为MOV MYDAT[BX][SI], AX(6) ADD V AR1,V AR2错:没有该指令,2个变量的偏移地址都是存储器操作数。
(9) IN AX,100H错:输入指令的端口地址大与255时,可以写端口号到DX,应为MOV DX,100H ;IN AL,DX(3) 分析下面程序段,MOV AL,200 ; (AL)=0C8HSAR AL,1 ; (AL)=0E4HMOV BL,AL ;(BL)=0E4HMOV CL,2 ;(CL)=02HSAR AL,CL ;(AL)=0F9HADD AL,BL ;(AL)=0DDH试问程序段执行后(BL)=0E4H (AL)=0DDH CF=1(6)已知目标串偏移地址为0100H,源串偏移地址为0200H,长度为50个字节。
《汇编语言程序设计》期末复习题和答案.doc

《汇编语言程序设计》期末复习题及答案一、选择(30题)1.下列是8位带符号二进制数的补码,其中最大的是(B )。
B、000000012.在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现(C )C、占内存空间大,但速度快3.数据定义为:EE DB 3, 4CC DW 3456H, 6789H执行指令“MOV CX, WORD PTR EE+1” 后,(CX) = ( B )B、5604H4.有如下指令序列:MOV AL, 95HMOV CL, 2SAR AL, CL上述指令序列执行后,AL的内容是(D )D、0E5H5.设A=186m B=273R,C=0BB E把这三个数看成无符号数,则它们之间的关系是(D )D、A<B=C6.用一条指令实现寄存器BX和SI的内容相加,并将结果送入AX中,这条指令是(D )D、LEA AX, [BX] [SI]7.要从端口1234H中读入8位数据,其指令应是(C )C、MOV DX, 1234HIN AL, DX8.循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是(B )B、CX尹。
且ZF=O9.8088/8086存储器分段,每个段不超过(D )D、64K个字节10.表示过程定义结束的伪指令是(A )A、ENDP11.用来存放下一条将要执行的指令代码段地址的段寄存器是(D )D、CS12.假定(SS) =1000H, (SP) =0100H, (AX) =5609H,执行指令PUSH AX 后,存放数据56H的物理地址是(D )D、100FFH13.执行“SUB AX, [BP] [DI] ”指令,取源操作数时,使用的物理地址表达式是(A )A、16*SS+BP+DI14.设AX中有一带符号数8520H,执行“SA R AX, 1”指令后,AX中的值是(C )C、0C290H15.设(BX) =1234H, (DS) =2000H, (21234H) =5678H,则指令“LEA SI, [BX] ” 执行后的结果是:(B )B、SI=1234H16.测试BL中的数是否为负数,若为负数则转移至AA1处,横线处的指令应为(A )A、JNE17.设DF=O, (SI) =20H, (CX) =10,执行“REP LODSW"指令后,SI 中的内容是(C )C、34H18.在程序执行过程中,IP寄存器中始终保存的是(B )B、下一条指令的首地址19.设SP初值为2000H,执行指令“POP AX”后,SP的值是(A )A、2002H20.若AX=3500H, CX=56B8H,当AND AX, CX 指令执行后,AX= ( A )A、1400H21.汇编源程序时,出现语法错误的语句是(A )A、MOV DS, 1200H22.将数据1234H存放在存储单元中的伪指令是(C )C、DATA1 DB 34H, 12H23.下面指令执行后,可能改变AL寄存器内容的指令是(D )D、AND AL, BL24.操作数地址存放在寄存器的寻址方式称为(B )B、寄存器间接寻址25.用户为了解决自己的问题,用汇编语言所编写的程序,称为(B )B、汇编语言程序26.用DOS功能调用时,子功能调用的编号应放在(C )C、AH27.提供串指令中目的操作数地址的是(C )C、ES: [DI]28.在寄存器间接寻址方式下,能够提供有效地址的寄存器有(B )B、BX, BP, SI, DI29.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是(A )A、2025 : 0F2A30.中断向量表中的每个中断向量所占内存空间为:(B )B、4个字节二、填空(30题)1.在用直接寻址方式寻址操作数时,系统对段地址的默认值在段寄存器DS 中。
【汇编语言程序设计】期末考试-试卷及参考答案

【汇编语言程序设计】期末考试-试卷及参考答案执行上述两条指令后,正确的结果是( 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寄存器中。
汇编语言复习题附答案

汇编语言复习题附答案一、选择题1. 汇编语言是一种()。
A. 高级语言B. 机器语言C. 低级语言D. 面向对象语言答案:C2. 在汇编语言中,指令通常由()组成。
A. 操作码和操作数B. 操作数和地址C. 操作码和地址D. 操作码、操作数和地址答案:A3. 汇编语言中的寄存器通常用来()。
A. 存储数据B. 存储指令C. 存储程序D. 存储地址答案:A4. 汇编语言中的指令MOV AX, BX的作用是()。
A. 将AX寄存器的值移动到BX寄存器B. 将BX寄存器的值移动到AX寄存器C. 将AX和BX寄存器的值相加D. 将AX和BX寄存器的值相减答案:B5. 汇编语言中的循环结构通常使用()指令实现。
A. JZB. JNZC. LOOPD. CALL答案:C二、填空题1. 汇编语言中的指令ADD AX, BX表示将AX和BX寄存器的值相加,并将结果存入____寄存器。
答案:AX2. 汇编语言中的指令SUB AX, BX表示将AX寄存器的值减去BX寄存器的值,并将结果存入____寄存器。
答案:AX3. 汇编语言中的指令CMP AX, BX用于比较AX和BX寄存器的值,但不进行存储操作,结果影响____标志。
答案:标志寄存器4. 汇编语言中的指令JMP LABEL用于无条件跳转到标签____处执行。
答案:LABEL5. 汇编语言中的指令PUSH AX将AX寄存器的值压入____。
答案:堆栈三、简答题1. 简述汇编语言与机器语言的区别。
答案:汇编语言是一种低级语言,它使用助记符来表示机器语言的指令,更易于人类理解和编写。
机器语言则是由二进制代码组成的指令集,直接被计算机硬件执行,但对人类来说难以阅读和编写。
2. 描述汇编语言中如何实现条件跳转。
答案:汇编语言中实现条件跳转通常使用条件跳转指令,如JZ(跳转如果零)、JNZ(跳转如果非零)、JMP(无条件跳转)等。
这些指令根据CPU的状态寄存器中的条件码标志来决定是否跳转到指定的标签处执行。
汇编期末考试题及答案

汇编期末考试题及答案试题:汇编期末考试题一、选择题(每题2分,共20分)1. 汇编语言中,用于定义常量的指令是:A. EQUB. DBC. DWD. DD2. 下列哪个指令用于将立即数送入累加器:A. MOV AX, 5B. MOV AL, 5C. MOV [100], 5D. MOV AX, [100]3. 在汇编语言中,哪个指令用于将数据从内存传送到寄存器:A. MOV AX, [BX]B. MOV [BX], AXC. MOV AX, BXD. MOV BX, AX4. 汇编语言中的循环结构通常使用以下哪个指令来实现:A. LOOPB. JUMPC. CMPD. RET5. 以下哪个指令用于将寄存器的内容清除为0:A. XOR AX, AXB. MOV AX, 0C. CLR AXD. SET AX, 06. 在汇编语言中,用于计算两个寄存器内容的和并存储结果的指令是:A. ADD AX, BXB. MOV AX, BXC. SUB AX, BXD. CMP AX, BX7. 下列哪个指令用于设置中断向量表:A. MOV AX, [100H]B. MOV [100H], AXC. MOV AX, @DATAD. MOV @DATA, AX8. 在汇编语言中,哪个指令用于无条件跳转:A. JMPB. JEC. JNED. JZ9. 汇编语言中,用于将寄存器的内容与立即数进行比较的指令是:A. CMP AX, BXB. MOV AX, BXC. ADD AX, BXD. SUB AX, BX10. 下列哪个指令用于将累加器的内容输出到屏幕上:A. OUT 0E0H, ALB. MOV AL, 0E0HC. MOV DX, 0E0HD. MOV AX, 0E0H二、简答题(每题5分,共20分)1. 解释汇编语言中的段寄存器的作用。
2. 描述汇编语言中堆栈的工作原理。
3. 解释汇编语言中的宏定义和条件编译指令。
汇编语言复习题与答案

汇编语⾔复习题与答案汇编语⾔程序设计复习题⼀、选择题1.⽤户为了解决⾃⼰的问题,⽤汇编语⾔所编写的程序,称为(B)A.⽬标程序B.源程序C.可执⾏程序D.汇编程序2.某系列微机对存储器的分段,如果每⼀个段最多的字节存储单元是64K,那么表⽰段内字节单元偏移地址的⼆进制位数应是(B)A.20位B.16位C.15位D.12位3.设SP初值为2000H,执⾏指令“PUSH AX”后,SP的值是(D)A.1FFFHB.1998HC.2002HD.1FFEH4.循环指令LOOP产⽣循环的条件是(C)A.CX-1=1B.CX-1=0C.CX-1≠0D.CF=1和ZF=05.汇编语⾔源程序中,每个语句可由四项组成,其中名字项是⼀个符号,下⾯列出的有效名字是(A)A.VariableB.First&ldC.0FFFFHD.‘Memphis’6.要求将A,B两个字符的ASCⅡ码41H,42H顺序存放在连续两个字存储单元中,可选⽤的语句是(A)A.DA1DB‘AB’B.DA1DW‘AB’C.DA1DB0ABHD.DA1DW‘ABH7.某程序装⼊内存后,DS=1200H,CS=1400H,则程序中数据段中的数据最多是(C)字节。
A.2KB.4KC.8KD.16K8.有语句:COUNT EQU256下列四种叙述中,正确的是(C)。
A.COUNT是变量B.COUNT占⽤⼀个字节存储单元C.COUNT是符号常数D.COUNT占⽤⼆个字节存储单元9.下⾯指令中,源操作数的寻址⽅式为⽴即寻址的是(C)。
A.MOV AX,OFFSET AB.MOV AX,AC.MOV AX,1D.MOV AX,A〔BX〕10.下列指令执⾏后,不改变AL寄存器内容的指令是(B)。
A.AND AL,1B.CMP AL,DLC.XOR AL,ALD.SUB AL,DL11.执⾏1号DOS系统功能调⽤,从键盘输⼊的字符值存放在(A)寄存器中。
A.ALB.BLC.CLD.DL12.将CX寄存器低4位清零的正确指令是(B)。
汇编语言与接口技术期末复习题(含答案)

c微机原理习题一、选择填空1、CPU执行OUT DX ,AL指令时,()的值输出到数据总线上。
A、AL寄存器B、AX寄存器C、DL寄存器D、DX寄存器2、连接主机与外设间的电路称为()。
A、接口B、端口C、数字电路D、转换电路3、地址译码的作用是()。
A、设计接口B、区分不同外设C、接至地址总线D、向外设输出数据4、中断控制器8259可管理()。
A、非屏蔽中断B、指令中断C、外部中断D、可屏蔽中断5、对INT N指令,其中断向量存放在内存从()开始的地址中。
A、DS*10H+N*4B、DS*10H+NC、0*10H+N*4D、0*10H+N6、8259的中断服务寄存器ISR的某一位如果置1,则表示()。
A、8259中断服务故障B、CPU正在执行中断服务程序C、外部设备可以请求中断服务D、中断服务程序刚执行完毕7、8086/8088CPU内部有一个始终指向堆栈顶部的地址指针是( )。
A、SPB、IPC、BPD、BX8、8086/8088CPU内部地址指针是( )。
A、20位B、8位C、16位D、24位9、8086存储段是存储器的一个逻辑单位,其长度可达()字节A、16KB、64KC、640KD、1M10、对于“未对准好”字,8086CPU需要()个总线周期完成对该字的访问。
A、1B、2C、3D、411、8086/8088能寻址内部存储器的最大地址范围为( )。
A、64KB、512KC、1MD、10M12、除法出错是属于()中断。
A、线路故障B、内部C、INTOD、单步13、中断传送方式下,当外部需要输入输出数据,向CPU发出中断请求信号,由接口电路使( )信号有效,引起中断响应。
A 、HLDAB 、INTRC 、HOLD D 、INTA14、DMA 数据传送,是由( )控制的。
A 、硬件控制器B 、程序C 、CPUD 、外设15、CPU 与外设交换信息时,是通过( )传送外设控制和外设状态信息的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、问答题1、 写出8086操作数的寻址方式。
8086的存储器寻址方式有哪些?答:操作数的寻址方式有:①立即(数)寻址。
②寄存器寻址。
③存储器寻址。
存储器寻址方式有:①立即寻址。
②寄存器寻址。
③直接寻址。
④寄存器间接。
⑤寄存器相对。
⑥基址变址。
⑦相对基址变址。
2、 何谓中断向量,何谓中断号?答:中断向量即中断服务程序的入口地址。
中断类型号是系统分配给每个中断源的代号。
3、 试写出由逻辑地址计算物理地址的计算公式。
写出8086在存储器寻址下,存储单元的逻辑地址的表示形式。
答:PA=段基址*16+偏移量 LA=段基址:偏移量4、 在存物理地址为00002H 起的字单元存放7856H ,请用图表示出它们在存储器里存放的情况。
5、 在物理存地址为00002H 起的字单元存放3412H ,请用图表示出它们在存储器里存放的情况。
6、 8088的寻址空间有多大?要寻址全部存空间必须采用什么技术措施?答:1MB ,分段寻址7、 寄存器间接寻址方式可使用哪些寄存器?答:在8086中:BX/BP/SI/DI8、 在分断技术中,寄存器BX 和BP 默认对应的段寄存器是哪些?答:BX 对应的是DS,BP 对应的是SS 。
9、 寄存器相对寻址方式中的位移量可以用什么形式表达?答:位移量=EA —基址—(变址*比例因子)10、 微机的存的最小编址单位是什么?字型数据在存的中的存放原则是什么?答:最小编址单位是B ,存放原则是先低字节,后高字节。
11、 基址变址寻址方式的可用寄存器有哪些?答:[BX][SI]/[BX][DI]12、 写出相对基址变址寻址方式的偏移地址EA 的计算公式。
答:EA=位移量+基址+变址13、 在存物理地址为30476H 起的连续地址空间存放了一个值为90634511H 的双字型数据,请用图表示出它们在存储器里存放的情况。
14、 在存物理地址为65780H 起的连续地址空间存放了一个值为12345678H 的双字型数据,请用图表示出它们在存储器里存放的情况。
15、 条件转移指令的转移围是多少?答:—128~12716、 LOOP 指令使用的循环计数器是什么?答:CX.17、 设有变量ABCD ,要取它的偏移地址送到寄存器AX 中,可用哪两种方法?用指令表达出来。
答:①LEA AX,ABCD ②MOV AX,ABCD18、 子程序调用时传递参数的三种基本方法是什么?答:①通过寄存器传送。
②通过堆栈传送。
③通过变量传送。
19、 串操作指令在使用前应做哪些准备工作?答:①把存放在数据段中的源串首地址(如反向传送则应是末地址)放入源变址寄存器中。
②把将要存放数据串的附加段中的目的串首地址(或反向传送时的末地址)放入目的变址寄存器中。
③把数据串长度放入计数寄存器。
④建立方向标志。
二、简答题写出下列各指令的源操作数的寻址方式。
(1)MOV AX,0AH 立即寻址 (21)SUB CX,0CFH 立即寻址 (2)MOV BX,12H 立即寻址 (22)MOV DX,49H 立即寻址 (3)MOV [BX],CL 寄存器寻址 (23)ADDC [BP],DL 寄存器寻址 (4)MOV [BX],CX 寄存器寻址 (24)ACHG [BX],AH 寄存器寻址 (5)MOV AX,[200H] 直接寻址 (25)AND AX,ES:[buf] 直接寻址 (6)MOV AX,[100H] 直接寻址 (26)MOV CX,SS:[buf] 直接寻址 (7)MOV BX,[BX] 寄存器间接寻址 (27)XOR AX,[DI] 寄存器间接寻址 (8)MOV AX,[BX] 寄存器间接寻址 (28)MOV CX,[BX] 寄存器间接寻址 (9)MOV AX,[BP] 寄存器间接寻址 (29)OR DX,[BP] 寄存器间接寻址 (10)MOV DX,[BP] 寄存器间接寻址 (30)MOV CX,[BP] 寄存器间接寻址 (11)MOV AX,[SI][BX] 基址变址寻址 (31)AND DL,[BP+DI] 基址变址寻址 (12)MOV CX,[BX][SI] 基址变址寻址 (32)MOV BX,[SI+BP] 基址变址寻址 (13)MOV DI,[BX+20] 相对基址寻址 (33)XOR SI,56[BX] 相对基址寻址(14)MOV DI,20[BX] 相对基址寻址(34)MOV DI,[BX+30] 相对基址寻址(15)MOV DH,V AL[BX] 相对基址寻址(35)ADD DL,buf[BX] 相对基址寻址(16)MOV DH,ARRY[BX] 相对基址寻址(36)MOV AL,[buf+BP] 相对基址寻址(17)MOV DS,V AL 直接寻址(37)MOV DS,[BX+DI] 基址变址寻址(18)MOV DS,ARRY 直接寻址(38)MOV DS,[BX+SI] 基址变址寻址(19)MOV BX,V AL[BX][SI] 相对基址变址寻址(39)MOV AH,[buf+BP+DI] 相对基址变址寻址(20)MOV BX,ARRY[BX][DI] 相对基址变址寻址(40)ADD AL,[buf+BX+SI] 相对基址变址寻址三、判断题对者在题号前的括号中打“√”,错的打“×”(×)1.SBB AL,DX (√)1.XCHG BX,AX(√)2.MOV CX,DX (×)2.XOR BL,CX(√)3.CMP BX,[DI] (√)3.CMP AX,[SI](×)4.CMP [BP],[BX] (√)4.POP DI(√)5.POP DI (√)5.POP AX(√)6.POP SI (×)6.PUSH CL 堆栈操作以字为单位(×)7.PUSH AL 堆栈操作以字为单位(×)7.PUSH AL 堆栈操作以字为单位(×)8.PUSH DL 堆栈操作以字为单位(√)8.OR BYTE PTR [BP],98(√)9.MOV BYTE PTR [BP],124 (√)9.AND [BX],255(√)10.MOV BYTE PTR [BX],100 (√)10.SUB [SI],BYTE PTR 35(√)11.ADD [DI],BYTE PTR 24 (√)11.MOV [BP],10(√)12.SUB [BP],BYTE PTR 10 (×)12.DEC [CX] CX不能间接寻址(×)13.DEC [DX] DX不能间接寻址(√)13.INC 8[BX](√)14.INC 2[BX] (√)14.SHL AL,1(√)15.ROR BL,1 (×)15.MOV BX,[DX] DX不能间接寻址(×)16.MOV CX,[DX] DX不能间接寻址(√)16.MOV buf[BP][SI],CL(√)17.MOV DA T[BP][DI],AL (√)17.MOV buf[BX][DI],CX(√)18.MOV DA T[BX][SI],AX (√)18.ADDC AL,BYTE PTR AC(AC为字变量) (√)19.SUB AL,BYTE PTR AC(AC为字变量) (√)19.CMP CX,WORD PTR WL(WL为字节变量) (√)20.ADD CX,WORD PTR WL(WL为字节变量) (√)20.ADD BX,[DI]四、程序填空题1、要求用移位指令实现(BX)<—(BX)*9MOV AX,BXMOV CL,3SHL AX,CLADD BX,AX2、要求用移位指令实现(BX)<—(BX)*5MOV AX,BXMOV CL,2SHL AX,CLADD BX,AX3、假设程序中数据定义如下:ASD DB 3要求把变量ASD的值在显示器上显示出来。
MOV DL,ASDADD DL,30HMOV AH,2INT 21H4、假设程序中数据定义如下:X DB 3要求把变量X的值在显示器上显示出来。
MOV DL,XADD DL,30HMOV AH,3INT 21H5、假设程序中字符串MESS定义如下:MESS DB ’ABCDEF’要求把字符串MESS送到显示器上显示出来。
LEA DX,MESSMOV AH,9INT 21H6、假设程序中字符串BUF定义如下:BUF DB ‘ABCDEF’MOV AH,9INT 21H7、假设程序中数据定义如下:BUF DB 32 DUP (?)要求在BUF中查找第一个’B’.CLDMOV CX,32MOV AL,’B’LEA DI,BUFREPEN SCASB8、假设程序中数据定义如下:BUF DB 38 DUP(?)要求在BUF中查找第一个’M’CLDMOV CX,38MOV AL,‘M’LEA DI,BUFREPEN SCASB9、比较两个字符串B1和B2,其长度为20个字节,找出它们相匹配的位置。
LEA SI,B1LEA DI,B2CLDMOV CX,0014HREPNE CMPSB10、比较两个字符串STR1和STR2,其长度为45个字节,找出它们不相匹配的位置。
LEA SI,STR1LEA DI,STR2CLDMOV CX,002DHREPE CMPSB五、写出下列程序(段)的执行结果。
1、CODE1 SEGMENTASSUME CS:CODE1MAIN PROC FARSTART:PUSH DSXOR AX,AXPUSH AXMOV CH,4MOV BX,1100010010001111B ROT1:MOV CL,4ROL BX,CLMOV DL,BLAND DL,0FHADD DL,30HCMP DL,3AHJB OUT1ADD DL,7HOUT1:MOV AH,2INT 21HDEC CHJNZ ROT1RETMAIN ENDPCODE1 ENDSEND MAIN此程序执行后,屏幕上显示的容为:C48F 2、DA TA SEGMENTBUF DB 7,9,6DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA BEGIN:MOV AX,DATAMOV DS,AXMOV CX,2MOV BX,OFFSET BUFMOV SI,1MOV AL,BUFAAA:CMP AL,[BX+SI]JL NEXTMOV AL,[BX+SI]NEXT:INC SILOOP AAAMOV DL,ALADD DL,30HMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND BEGIN执行此程序后,屏幕上显示的容为:6 (此程序功能是将串中小于7的数字屏显出来) 3、MOV AL,03HMOV CL,2SHL AL,CL此指令段执行后,AL中的值为:0CH (即3*2*2=12)4、MOV AL,40HMOV CL,2SHR AL,CL此程序段执行后,AL中的值为:10H (即64/2/2=16)5、CODE SEGMENTASSUME CS:CODEMAIN:MOV AH,1INT 21HMOV AH,2MOV DL,ALADD DL,30HINT 21HMOV AH,4CHINT 21HCODE ENDSEND MAIN设输入数字7,其输出结果是多少?76、CODE SEGMENTASSUME CS:CODEMAIN:MOV AH,1INT 21HADD AL,2MOV AH,2MOV DL,ALADD AL,30HINT 21HMOV AH,4CHINT 21HCODE ENDSEND MAIN设输入数字3,其输出结果是多少?5六、程序设计1、求两个字节数X和Y的2倍放到Z单元中。