微机原理与接口技术思考与练习题(第三版)附答案 联系客服

发布时间 : 星期四 文章微机原理与接口技术思考与练习题(第三版)附答案更新完毕开始阅读baa6e41fa300a6c30c229fd7

P54~P57

3.指令MOV AX,ES:[BX+O1OOH]中,源操作数位于_物理地址为ES*10H+BX+0100H的存储单元_;读取的是_附加数据ES_段的存储单元内容。

4.堆栈是一个特殊的_存储器区域_,其操作是以_2字节单元_为单位按照__先进后出_原则来处理;采用_SP_指向栈顶地址,入栈时地址变化为_SP<=(SP)-2_。P57

5.I/O端口的寻址有_直接端口寻址和间接端口寻址_两种方式;采用8位数端口地址(直接端口寻址)时,可访问的端口地址为_0~255_;采用16位数端口地址(间接端口寻址)时,可访问的端口地址为_0~65535_。P57~ P58 三、分析计算题

1.指出如下指令中源操作数和目的操作数的寻址方式: (1)MOV AX,100H (2)MOV CX,AX

(3)ADD [SI],1000 (4)SUB BX,[SI+100] (5)MOV [BX+300],AX (6)AND BP,[DI]

源操作数 目的操作数 (1)MOV AX,100H 立即数 寄存器 (2)MOV CX,AX 寄存器 寄存器 (3)ADD [SI],1000 立即数 寄存器间接 (4)SUB BX,[SI+100] 变址 寄存器 (5)MOV [BX+300],AX 寄存器 变址 (6)AND BP,[DI] 寄存器间接 寄存器

2.分析如下指令的正误,对错误指令说明出错误原因并加以收正: (1)MOV [1200],23H (2)MOV 1020H,CX (3)MOV [1000H],[2000H] (4)MOV IP,O00H (5)PUSH AL (6)OUT CX,AL (7)IN AL,[80H] (8)MOV CL,3300H

(1)MOV [1200],23H ;未指明数据类型 MOV BYTE PTR[1200],23H (2)MOV 1020H,CX ;立即数不能作为目标操作数 MOV [1020H],CX (3)MOV [1000H],[2000H] ;两操作数不能均是内存单元 MOV BYTE PTR [1000H],2000H (4)MOV IP,000H ;IP不能在MOV指令中出现 JMP 000H (5)PUSH AL ;操作数必须是16位 PUSH AX

(6)OUT CX,AL ;CX不能作为端口地址的间接访问寄存器 OUT DX,AL (7)IN AL,[80H] ;直接端口地址写法错误 IN AL,80H (8)MOV CL,3300H ;两操作数的数据类型不一致 MOV CX,3300H

3.给定(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(2010lH)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H。试分析如下指令执行后,AX寄存器中的内容:

(1)MOV AX,12O0H (2)MOV AX,BX (3)MOV AX,[1200H] (4)MOV AX,[BX] (5)MOV AX,1100H[BX] (6)MOV AX,[BX+SI] (7)MOV AX,[11OOH+BX+SI]

(1)MOV AX,1200H ;(AX)=1200H (2)MOV AX,BX ;(AX)=0100H (3)MOV AX,[1200H] ;(AX)=4C2AH (4)MOV AX,[BX] ;(AX)=3412H (5)MOV AX,1100H[BX] ;(AX)=4C2AH (6)MOV AX,[BX+SI] ;(AX)=7856H (7)MOV AX,[1100H+BX+SI] ;(AX)=65B7H

4.已知(AX)=75A4H,CF=1,分别写出如下指令执行后的结果: (1)ADD AX,08FFH (2)INC AX

(3)SUB AX,4455H (4)AND AX,OFFFH (5)OR AX,0101H (6)SAR AX,1 (7)ROR AX,1 (8)ADC AX,5

(1)ADD AX,08FFH ;(AX)= 7EA3H CF=0 (2)INC AX ;(AX)= 75A5H CF=1 (3)SUB AX,4455H ;(AX)= 314FH CF=0 (4)AND AX,0FFFH ;(AX)= 05A4H CF=0 (5)OR AX,0101H ;(AX)= 75A5H CF=0 (6)SAR AX,1 ;(AX)= 3AD2H CF=0 (7)ROR AX,1 ;(AX)= 3AD2H CF=0 (8)ADC AX,5 ;(AX)= 75AAH CF=0

5.给定(SS)=8000H,(SP)=2000H,(AX)=7A6CH,(DX)=3158H。执行如下程序段,画出每条指令执行后寄存器的内容和堆栈存储内容的变化情况: PUSH AX PUSH DX POP BX POP CX

PUSH AX ;(AX)=7A6CH,(SP)=1FFEH,(81FFEH)=7A6CH PUSH DX ;(DX)=3158H,(SP)=1FFCH,(81FFCH)= 3158H POP BX ;(BX)=3158H,(SP)=1FFEH POP CX ;(CX)=7A6CH,(SP)=2000H

6.试分析如下程序段执行完后,BX的内容:817FH MOV BX,1030H ;(BX)=1030H MOV CL,3 ;(CL)=3 SHL BX,CL ;(BX)=8180H DEC BX ;(BX)=817FH 四、设计题

1.现有两个双倍精度字数据1234FEDCH和11238765H,分别存放在数据段中从1000H和2000H开始的存储单元中,低位在前,高位在后。要求两数相加之后所得的和放在从1000H开始的内存单元中,设计该程序段。

;3_4_1.ASM

MOV SI,2000H ;SI指向2000H MOV DI,1000H ;DI指向1000H CLC ;CF=0

MOV CX,4 ;CX=4,循环相加4次 LL: MOV AL,[SI] ;取数 ADC AL,[DI] ;相加 MOV [DI],AL ;保存 INC SI ;SI增1 INC DI ;DI增1

LOOP LL ;CX减1,不为0,转LL MOV AX,0 ADC AX,0 MOV [DI],AX

2.设AX、BX中保存有带符号数,CX、DX中保仔无符号数,请写出实现以下功能的指令或程序段。

(1)若(CX)<(DX),则转移到NEXT1。 CMP CX,DX JB NEXT1

(2)若(AX)>(BX),则转移到NEXT2。 CMP AX,BX JG NEXT2

(3)若(CX)=0,则转移到NEXT3。

CMP CX,0 或 JCXZ NEXT3 JE NEXT3

(4)若AX中内容为负,则转移到NEXT4。

TEST AX,8000H 或 ADD AX,0 JNZ NEXT4 或 JS NEXT4 3.设堆栈寄存器(SS)=2250H。堆栈指示器(SP)=0140H,若在堆栈中存入5个字数据,则SS、SP的内容各是多少?[(SS)=2250H、(SP)=0136H] 如果又取出2个字数据,SS、SP的内容各是多少?[(SS)=2250H、(SP)=013AH]

4 思考与练习题

一、选择题

1.汇编语言程序中可执行的指令位于( )中。 C A.数据段 B.堆栈段 C.代码段 D.附加数据段 2.以下内容不是标号和变量属性的是( )。 B A.段属性 B.地址属性 C.偏移属性 D.类型属性

3.DOS功能调用中采用屏幕显示单个字符,其值保存在( )寄存器。 C A.AL B.AH C.DL D.DH

4.DOS功能调用中,从键盘读取一个字符并回显的是( )。 A A.01H B.02H C.09H D.0AH

5.循环程序设计中,要考虑的核心问题是( )。 A A.循环的控制 B.选择循环结构 C.设置循环参数初始值 D.修改循环控制参数

6.对于宏指令和子程序,下列说法不正确的是( )。 D A.宏指令不能简化目标程序

B.子程序可以简化目标程序,但执行时间长 C.子程序在执行过程中由CPU处理 D.宏指令在执行时要保护和恢复现场 二、填空题

1.汇编语言是一种面向_CPU指令系统_的程序设计语言,采用_指令助记符_表示操作码和操作数,用_符号地址_表示操作数地址。P82

2.汇编语言的语句可由_名字、操作符、操作数、注释_四部分组成;其中_操作符_是必须具备的。P83

3.机器指令是指_发送给CPU的命令_,在运行时由_CPU_执行;伪指令是_发送给汇编程序的命令_,在汇编过程中由_汇编程序_进行处理;宏指令是指_代表一段源程序_,通常用于_经常用到的一个程序段_场合。P87、P107

4.子程序的基本结构包括_子程序说明、现场保护及恢复、子程序体、子程序返回_等几个部分;子程序的参数传递有_寄存器、堆栈、存储器_等方法。P104、P105

5.DOS功能调用可完成对_完成对文件、设备、内存_的管理;BIOS的主要功能是_外设的控制;如系统加电自检、引导装入及对键盘、磁盘、显示器、打印机、异步串行通信口等的控制_。

6.给定如下程序段,在每条指令的右边写出指令的含义和操作功能,指出该程序段完成的功能及运行结果:

MOV AX,0 ;AX<=0 MOV BX,1 ;BX<=1 MOV CX,5 ;CX<=5 LP: ADD AX,BX ;AX<=AX+BX ADD BX,2 ;BX<=BX+2

LOOP LP ;CX<=CX-1;若CX≠0,转LP HLT ;停机 (1)该程序段完成的功能是_

?2n?1_。

05 (2)程序运行后:(AX)=_36_;(BX)= _11_;(CX)= _0_。 三、判断题

1.伪指令是在汇编中用于管理和控制计算机相关功能的指令。 ( )× 2.程序中的“$”可指向下一个所能分配存储单元的偏移地址。 ( )√ 3.宏指令的引入是为了增加汇编程序的功能。 ( )√ 4.多重循环的内循环要完整地包含在外循环中,可嵌套和并列。 ( )√ 5.子程序结构缩短了程序的长度,节省了程序的存储空间。 ( )√ 四、简答题

1.完整的汇编源程序应该由哪些逻辑段组成(数据段、堆栈段、代码段)?各逻辑段的主要作用是什么(存放数据变量及其预置初值、保存中断和子程序的断点和参数传递、存放程序执行的代码)?P87

2.简述在机器上建立(为源程序起一个有意义的文件名字,并创建成文本文件)、编辑(在文本编辑软件EDIT.EXE环境下,输入和编辑源程序)、汇编(通过汇编程序ASM.EXE或MASN.EXE,将源程序会变成机器语言目标程序.OBJ)、连接(运用连接程序LINK.EXE,将目