《微机原理及接口技术 考前习题课习题课》由会员分享,可在线阅读,更多相关《微机原理及接口技术 考前习题课习题课(28页珍藏版)》请在金锄头文库上搜索。
1、第 4 章指令助记符总复习第 4 章指令助记符总复习指令类型助记符串处 理串操作MOVSB/W、CMPSB/W、SCASB/W、STOSB/W、LODSB/W重复前缀REP、REPZ/REPE、REPNZ/REPNE程序 控制 转移无条件转移JMP条件转移JC、JNC、JZ/JE、JNZ/JNE、JS、JNS、JO、JNO、 JP/JPE、JNP/JPO JA/JNBE、JNA/JBE、JB/JNAE、JNB/JAE JG/JNLE、JNG/JLE、JL/JNGE、JNL/JGE 循环控制LOOP、JCXZ、LOOPZ/LOOPE 、LOOPNZ/LOOPNE子程序调用CALL、RET中断指令
2、INT、INTO、IRET处理器控制CLC、STC、CLD、STD、CLI、STI、CMC、HLT、NOP 、WAIT、ESC、LOCK1. 掌握基本程序结构基本程序结构顺序结构顺序结构、循环循环 结构结构、分支结构分支结构及其汇编语言程序设计2. 熟悉常见程序设计熟悉常见程序设计问题:数据范围判断数据范围判断(09、AZ、az)字母大小写转换字母大小写转换;字符串传送、比较等操作字符串传送、比较等操作求最大最小值、数据求和、统计字符个求最大最小值、数据求和、统计字符个 数数数组排序,查找,插入,删除数组排序,查找,插入,删除第 4 章(3)分支结构 (4) 子程序结构 程序结构(5)复合结构
3、:多种程序结构的组合(1) 顺序结构 (2) 循环结构第 4 章 编制汇编语言程序的步骤(1) 分析题意,确定算法(2)根据算法画出程序框图(3)分配存储空间及工作单元(4)根据框图编写程序(5)上机调试程序第 4 章例题一选择题 1。若定义 DAT DW 12 ,则DAT及DAT+1单元的数据是(A)nA。32H,31H B。31H,32HC。00H,0CHD。00H,12H 2。下列指令中不影响标志位的是(D)nA。ADD BX,CX B。SUB BX,1000 C。SAR DX,1 D。DIV CX3。串操作中有REP的指令结束的条件是(D)nA。ZF=1B。ZF=0C。CX0D。CX=
4、04。指出下面数据段定义的错误nDATASEGMENTnX DB332HnENDS5。下面指令不合法的是(A)nA。IN AX,03F8H B。MOV BX,AX C。REP CMPSB D。SHR BX,CL6。设SS=2000H,SP=0100H,执行PUSH BP后栈顶的地址是nSP=0100-2=00FEH,SS+SP=20000H+00FEH=200FEH第 4 章7。下面指令中为直接寻址的是(B)nA。ADD AX,WORD PTR BX+SI B。ADD AX,X C。INC CX D。MOV BX,7FFFH8。执行下列程序后,AX=?(0300H)nTAB DW 1,2,3,
5、4,5,6nENTRY EQU 3nMOV BX,OFFSET TABnADD BX,ENTRYnMOV AX,BXnMEMORY=01,00,02,00,03,00,从三号单元读一个字到AX第 4 章9。执行下列指令后,AL=?(AL=AL*10)nMOVAL,10nSHLAL,1nMOVBL,ALnSHL AL,1nSHLAL,1nADDAL,BL10。执行下列指令后,AL=?(34H)nBUFDW2152H,3416H,5731H,4684HnMOVBX,OFFSET BUFnMOVAL,3nXLAT11。执行下列指令后,AX=?(25)nMOVCX,5nMOVAX,50nNEXT:SU
6、B AX,CXn LOOP NEXTnHLT第 4 章12。汇编语言源程序经汇编后不能直接产生nA。OBJ 文件B。LST文件C。CRF文件D。EXE文件13。若AL=10101101B,为使其内容变为01011101B,应执行那条指令 A。NOTB。ANDC。XORD。OR14。设VAR1及VAR2是用DW定义的变量,下列指令正确的是(A)nA。MOV VAR1,20HB。MOV AL,VAR1nC。MOV VAR1,VAR2D。MOV 2000H,VAR215。若ES段有一个字符串12FG3LM5C,名为ARRAY,下面程序执行后,CX值 是多少?(B)nCLDnLEA DI,ES:ARR
7、AYnMOV AL,GnMOV CX,9nREPNE SCASBnHLTnA。9B。5C。4D。0第 4 章16。执行下列指令后,DX=?(12+10+8+6+4+2)=42))nMOVCX,10nMOVDX,12nNEXT:ADD DX,CXnDEC CXnLOOPNEXTnHLT17。CPU中PC存放的是(B)nA。指令 B。指令地址C。操作数D。操作数地址18。执行下列指令后AL=?(48)nMOVAL,128nMOVCL,2nSHRAL,CLnMOVCL,ALnSHRAL,1nADDAL,CL第 4 章19。8086CPU中,时间周期、指令周期和总线周期的费时长短的排列是( C )。
8、A:时间周期指令周期总线周期 B:时间周期总线周期指令周期 C:指令周期总线周期时间周期 D:总线周期指令周期时间周期20。CPU中 PC存放的是20。8086CPU中,控制线ALE的作用是。 ( D ) A:数据总线收发器方向控制 B:存储器存取操作控制 C:数据总线收发器有效控制 D:地址/数据线分离控制 NOTE: /RD和/WR ? DT/R ? /DEN ?21。8086中,存储器物理地址形成算法是。 ( B ) A:段地址+偏移地址 B:段地址左移4位+偏移地址 C:段地址16H+偏移地址 D:段地址10 +偏移地址22。下列指令中,不正确的指令是。 ( D ) A:MOV BX+
9、SI,AX B:MOV AX,BX + SI C:MOV AX,SI D:MOV AX,BX + CX23. 使用8086汇编语言的伪操作指令定义: VAL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0) 则在VAL存储区内前十个字节单元的数据是( )。 (A) 1,2,3,3,2,1,0,1,2,3 (B) 1,2,3,3,3,3,2,1,0,1 (C) 2,1,2,3,3,2,1,0 (D) 1,2,3,3,3,1,0,1,0,1 第 4 章下列有关指令指针寄存器的说法中,哪一个是正确的( )。 A、IP存放当前正在执行的指令在代码段中的偏移地址 B、IP存放下一条将要执
10、行的指令在代码段中的偏移地址 C、IP存放当前正在执行的指令在存储器中的物理地址 D、IP存放当前正在执行的指令在存储器中的段地址某系统中,已知建立堆栈时SS=2360H,SP=0800H,经过一段时间后,SP的内容 变为0700H,则堆栈中有多少个字的数据( ) A、80H B、50H C、100 D、100H第 4 章对于由8086/8088 CPU组成的系统,堆栈的位置如 何确立?堆栈的首址(即SS中的值)是不是栈底? 为什么? 答:8086/8088系统中堆栈的位置由SS和SP初始 化后确立:其中(SS)*16决定了堆栈段起始单元 的地址,即堆栈段首址;(SS)*16+(SP初值) 决
11、定了堆栈段最后一个单元的地址,即栈底;(SS )*16+(SP现值)决定了堆栈段当前可用单元的 地址,即栈顶。 显然,堆栈首址并不是栈低。一般来说,在堆栈所 在的内存区内,栈底为高地址端。堆栈初始化后, 未压入数据时,栈底与栈顶是重合的。当堆栈压入 数据后,栈顶地址总是小于栈底地址,位于低地址 端。第 4 章若CS为0A000H,试说明现行代码段可寻址物理空 间的范围。答: 因为8086系统中可寻址的最大逻辑段长度为 64K,所以当CS为0A000H,即段基址为CS*16 0A0000H时,现行代码段可寻址物理空间的范围为 :0A0000H 0AFFFFH。第 4 章若(CS)=5200H时,
12、物理转移地址为5B230H, 则当CS的内容被设定为7800H,物理转移地址应为 多少?答:按题目条件可知该转移地址距CS所指代码段的 段基址的偏移量为9230H (即= 5B230H-52000H ),因此若(CS)=7800H,则物理转移地址应为 :78000H +9230H=81230H。第 4 章假定VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处。 (1)ADD VAR1,VAR2(2)SUB AL,VAR1 (3)JMP LABCX(4)JNZ VAR1 (5) MOV 1000H,100 (6)SHL AL, 4 解答:(1)两个操作数中至少有一个为寄存器; (
13、2)AL为字节,VAR1为字变量,不匹配; (3) 中不能用CX,LAB为标号,非变量; (4)转向地址应为标号,不能是变量; (5)目的操作数的类型不确定; (6)SHL指令中,当所移位数超过1时,必须用CL或CX来取代所移位数。 对于下面的符号定义,指出下列指令的错误。 A1DB? A2DB10 K1EQU1024 (1)MOVK1,AX(2)MOV A1,AX (3)CMPA1,A2(4)K1 EQU2048 解答:(1)K1为常量,不能用MOV指令赋值; (2)A1为字节,AX为字变量,不匹配; (3)A1未定义,无法做比较指令; (4)K1重新赋值前,必须用PURGE释放。第 4 章
14、 二、判断题 1指令MOV AX,BX的源操作数是寄存器寻址方式。2对堆栈区的操作必须遵循先进先出的原则。3比较两个带符号数的大小,可根据CF标志来判断。4逻辑操作符AND,OR,XOR和NOT,只能用于数字表达5不能给段寄存器赋立即数。6OF位可用来表示有符号数的溢出。7无条件转移指令只能用于段内直接转移。8MOV AX,BP的源操作数的物理地址为16*(DS)+(BP)9指令MOV DI,OFFSET BXSI是正确的。10指令MOV CS,BX是非法的。11指令NOT AX,BX是合法的。12MOV BXBP,AX是对的。第 4 章138086中对堆栈单元的存取操作是以字节为单位。 14
15、JMP指令要影响标志位。 15INC指令影响所有状态标志。 16欲交换寄存器SI,DI的内容,可用指令XCHG SI,DI实现。 17CPU中的程序计数器IP中存放的是指令的逻辑地址。 18两个符号相同的数相减不会产生溢出。 19汇编程序就是汇编语言程序。 20相对寻址中的位移量只能用16位表示。 21CLD指令是MOVSB指令的使用条件之一。 22段寄存器间不能直接进行数据传送。 23要把变量BUFF的有效地址送给BX,可用MOV BX,BUFF指令。 24当对堆栈段的数据进行操作时,其操作数的有效地址可保存 在BP中。 25TEST指令属于逻辑运算指令。 26CS和IP都不能作传送指令的目的操作数。 第 4 章三、填空题 1若SS=5310H,SP=0E30H,其物理地址为( )。 2若CH=07H,CL=08H,执行指令ADD CH,CL后,AF=( ),CF=( ),OF=( ),PF=( )。 3指令由( ) 和( ) 两个字段构成。 4 条件转移