计算机原理与接口技术课后习题答案
单片机微型计算机原理及接口技术课后习题答案第4章

单片机微型计算机原理及接口技术课后习题答案第4章4-2 试述指令MOV A,R0和MOV A,@R0的区别两条指令的目的操作数相同,两条指令的区别在于源操作数来源不同:MOV A,R0 指令的源操作数就是R0寄存器的内容;而MOV A,@R0 指令的源操作数是位于存储器单元内,且存储器单元的地址是R0寄存器的内容。
4-3 试述指令MOV A,20H和MOV A,#20H的区别MOV A,20H 源操作数是直接寻址,20H表示源操作数所在存储器单元的地址。
MOV A,#20H 源操作数是立即数寻址,#20H是立即数,也就是源操作数。
4-4 说明一下指令中源操作数所在的存储器类型。
(1)MOV A,#30H; 立即数#30H,就是源操作数,存在于指令中,所以位于程序存储器。
(2)MOV A,30H; 30H是源操作数所在数据存储单元的地址,所以源操作数位于数据存储器。
(3)MOVC A,@A+DPTR;源操作数是变址寻址, 助记符MOVC表示源操作数位于程序存储器。
(4)MOVX A,@DPTR; 源操作数是寄存器间接寻址, 助记符MOVX表示源操作数位于外部数据存储器。
4-5 判断下列指令书写是否正确:(1)MOV A,B; ✔(2)MOV A,#3000H ; ✘,因为A是8位寄存器,而#3000H是16位数值,没法全部存到A里(3)INC,#20H ; ✘只能INC A/direct/Rn/@Ri/DPTR(4)MOV 5,A ; ✔,注意目的操作数是直接寻址方式,不是立即寻址(5)MOV 30H,40H; ✔(6)MOV B,@DPTR ; ✘,@DPTR寻址用于MOVX指令,不能用于MOV指R(7)CJNE 30H,#80H,NEXT ; ✘,CJNE指令格式只能是CJNE A/Rn/@Ri,#data,rel或CJNE A,direct,rel(8)POP A ; ✘只能是直接寻址方式POP direct,正确的是POP ACC(9)PUSH ACC; ✔(10)SJMP 2000H ; ✘rel的范围是-128~127(用补码表示其值)共256B范围4-6 设ACC=12H,B=64H,SP=60H,30H中存放的是78H,试分析下列程序执行后,ACC、B、30H、SP中的内容分别为多少,并画出堆栈示意图。
单片微型计算机原理及接口技术答案

单片微型计算机原理及接口技术答案【篇一:单片微型计算机原理与接口技术髙锋版课后答案第4章】txt>思考与练习题解析【4—1】简述下列基本概念:程序、程序设计、机器语言、汇编语言及高级语言。
【答】各基本概念如下。
【4—2】在单片机领域,目前最广泛使用的是哪几种语言?有哪些优越性?单片机能否直接执行这几种语言?【答】在单片机领域,目前最广泛使用的是汇编语言和高级语言。
汇编语言编写的程序效率高,占用存储空间小,运行速度快,而且能反映单片机的实际运行情况。
但编程比使用高级语言困难,通用性差。
单片机不能直接执行汇编语言程序,必须通过人工(或机器)汇编把汇编语言程序转换为机器语言程序。
高级语言不受具体机器的限制,而且使用了许多数学公式和习惯用语,从而简化了程序设计的过程,通用性强,易于移植到不同类型的单片机中。
单片机不能直接识别和执行高级语言,需要将其转换为机器语言程序才能识别和执行。
对于高级语言,这一转换工作通常称为“编译”或者“解释”。
进行编译或者解释的专用程序称为“编译程序”或者“解释程序”。
【4—3】什么叫伪指令?8oc51单片机程序设计中主要有哪些伪指令语句?【答】伪指令又称为“汇编程序控制译码指令”。
“伪”体现在汇编时不产生机器指令代码,不影响程序的执行,仅指明在汇编时执行一些特殊的操作。
例如.为程序指定一个存储区,将一些数据、表格常数存放在指定的存储单元,说明源程序开始或结束等.。
不同的单片机开发装置所定义的伪指令不全相同。
80c51单片机程序设计中主要有伪指令语句如下。
1.org(origin)一汇编起始地址伪指令,指令格式为:org 表达式’其含义是向汇编程序说明,下述程序段的起始地址由表达式指明。
表达式通常为十六进制地址码。
2.end(end 0f assembly)一汇编结束伪指令。
其含义是通知汇编程序,该程序段汇编至此结束。
3.equ(equate)—赋值伪指令。
指令格式为:标号 equ 表达式其含义是把表达式赋值于标号,这里的标号和表达式是必不可少的。
微型计算机原理及接口技术,王忠民,课后答案

第二章1. 将下列十进制数转换成二进制和十六进制(1)129.75 = 100000001.11B= 81.CH(2)218.8125 = 1101 1010.1101B = DA.DH(3) 15.625 = 1111.101B = F.AH(4)47.15625 = 101111.00101B = 2F.28H2. 将下列二进制数转换成十进制和十六进制(1)111010B = 58 = 3AH(2)10111100.11B = 188.875= BC.E H(3) 0.11011B = 0.84375= 0.D8 H(4)11110.01B = 30.25= 1E.4H4、完成下列16进制的加减法运算。
(1)0D14B H (2) 9C28.E H(3) 1678 .FC H (4) -80D7 H5. 计算下列表达式的值(1)128.8125+10110101.1011B+1F.2H= ( 101010101.101 ) B(2)287.68-10101010.11B+8E.EH=( 103.CE ) H(3) 18.9+1010.1101B+12.6H-1011.1001B= ( 36.525 ) D7. 写出下列以补码表示的二进制数的真值:1)[X]补= 1000 0000 0000 0000?X = - 1000 0000 0000 0000 = - 215 = - 32768(2)[Y]补= 0000 0001 0000 0001?Y = + 0000 0001 0000 0001 = +257(3)[Z]补= 1111 1110 1010 0101?X = - 000 0001 0101 1011 = - 347(4)[A]补= 0000 0010 0101 0111?X = + 0000 0010 0101 0111 = +5999、设有变量……..X+Y = 1B8 H Y+Z =161 HY+Z=13B H Z+V=0CC H(1) 不正确不正确不正确正确(2)正确正确正确溢出12. 试计算下列二进制数为无符号数、原码、反码、补码、8421BCD码时分别代表的数值大小。
1微型计算机原理与接口技术__课后答案_(邹逢兴_著)_清华大学出版社

2.14 解: (BP)=4433H,(SP)=1022H,
2.15 1. ( CL ) = 0F6H 2. [1E4F6H] = 78H 3. ( BX ) = 0056H , ( AX ) = 1E40H
3
4. ( SI ) = 00F6H , [ SI ] = 0024H 5. ( AX ) = 5678H , [ 09226H ] = 1234H
;'0D’→ CR 键,’0AH’
→ LF 键
;PLUS:正数的个数。
;ZERO: 0 的个数。
DATA
ENDS
;MINUS:负数的个数。
CODE SEGMENT ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
;给 DS 赋初值,
MOV DS, AX
;建立其数据段的寻址性。
2) 将 ES 段从 EA = 0100H 开始的 128 个字单元清 0。
2.35 解:
MIN: MOV BX, ?1
;3000H
MOV AL, [BX]
MOV CX, ?2
;100H
LP1: INC BX
CMP AL, [BX]
?3 LP2
;JLE
MOV AL, [BX]
LP2: DEC CX
JNZ ?4
MOV MOV XOR NEXT: CMP
CX, 18 SI, 00H BX, BX ARRAY[SI], 00H
JS M_PRO
JZ Z_PRO
P_PRO: INC D_SUM
INC MOV MOV MOV JMP
P_SUM+5 AL, ARRAY[SI] BL, P_SUM+5 (P_ARR-1) [BX], AL NEXT1
微型计算机原理与接口技术_课后习题答案_中科大出版社_第三版112页PPT

•
27、法律如果不讲道理,即使延续时 间再长 ,也还 是没有 制约力 的。— —爱·科 克
•
28、好法律是由坏风俗创造出来的。 ——马 克罗维 乌斯
•
29、在一切能够接受法律支配的人类 的状态 中,哪 里没有 法律, 那里就 没有自 由。— —洛克
•
30、风俗可以造就法律,也可以废除 法律。 ——塞·约翰逊
1、最灵繁的人也看不见自己的背脊。——非洲 2、最困难的事情就是认识自己。——希腊 3、有勇气承担命运这才是英雄好汉。——黑塞 4、与肝胆人共事,无字句处读书。——周恩来 5、阅读使人充实,会谈使人敏捷,写作使人精确。——培根
《微型计算机原理与接口技术》第三版 课后答案 第四章

习题一、选择CBC AAD三、判断√√√√√五、设计1、编程实现求S=(X2+Y2)/Z的值,将最后结果放入RESULT单元保存。
参考程序如下:DA TA SEGMENT ;定义数据段X DB 5 ;给X、Y、Z赋初值Y DB 7Z DB 2RESULT DB ?;定义RESULT单元,预留空间DA TA ENDS ;数据段结束CODE SEGMENT ;定义代码段ASSSUME CS:CODE,DS:DATASTART:MOV AX,DATA ;初始化DSMOV DS,AXMOV AL,X ;将数据X送ALMUL X ;计算X2MOV BX,AX ;将中间结果保存到BXMOV AL,Y ;将数据Y送ALMUL Y ;计算Y2ADD AX,BX ;X2+Y2,结果保存到AXDIV Z ;计算(X2+Y2)/ZMOV RESULT,AL ;最后结果送RESULT单元MOV AH,4CH ;返回DOSINT 21HCODE ENDS ;代码段结束END START ;汇编结束2.计算S=(A+B)/2 – 2(A AND B)。
DA TA SEGMENTA DB 12B DB 51S DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DA TAMOV DS,AXMOV AL,AADD AL,BSHR AL,1MOV AH,AMOV BL,BAND AH,BLMOV BL,AHSHL BL,1SUB AL,BLMOV S,ALMOV AH,4CHINT 21HCODE ENDSEND START3. 参考P86 例4.34.DA TA SEGMENTX DW 34S DW ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DA TAMOV DS,AXMOV AX,XCMP AX,0JL DOUBCMP AX,10JLE TRIBSAL AX,1SAL AX,1JMP EXITDOUB: SAL,AX,1JMP EXITTRIB:SAL AX,1ADD AX,XEXIT:MOV S,AXMOV AH,4CHINT 21HCODE ENDSEND START5.统计非数字字符的个数DA TA SEGMENTBUF DB 20H DUP (?)CNT DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DA TAMOV DS,AXLEA SI,BUFMOV DL,0NEXT1:MOV AH,01HINT 21HMOV [SI],ALINC SICMP AL,0DHJZ EXITCMP AL,30HJGE NEXTINC DLJMP NEXT1NEXT:CMP AL,39HJBE NEXT1INC DLJMP NEXT1EXIT:MOV CNT,DLMOV AH,4CHINT 21HCODE ENDSEND START6、将键盘连续输入的小写字母转换成大写字母CODE SEGMENTASSUME CS:CODESTART: MOV AH,01HINT 21HMOV BL,ALMOV DL,’-‘MOV AH,02HINT 21HMOV AL,BLCMP AL,’a’JB EXITCMP AL,’z’JA EXITSUB AL,20HMOV DL,ALMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HMOV DL,0DHMOV AH,02HINT 21HJMP STARTEXIT: MOV AH,4CHINT 21HCODE ENDSEND START7.统计负数的个数DATA SEGMENTBUF DB 45,50,-34,40,4,15,29,-1,-2,-59CN EQU $-bufA DB ?B DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DA TAMOV DS,AXLEA SI, BUFMOV CX, CNMOV BX, 0LP: MOV AL, [SI]INC SITEST AL, 80HJZ NEXTINC BHJMP EXITNEXT: INC BLEXIT: LOOP LPMOV A, BLMOV B, BHMOV AH,4CHINT 21HCODE ENDSEND START8、宏定义,将16进制数转换成ASCII码HEXTOA MACROAND AL,0FHCOM AL,9JNA HEXTOA1ADD AL,07HHEXTOA1: ADD AL,30HENDM出师表两汉:诸葛亮先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
单片机微型计算机原理及接口技术课后习题答案3章

单片机微型计算机原理及接口技术课后习题答案3章3-1简述模型机的工作过程(就以书上举例,叙述过程,本题内容较多,明白道理即可,不需详细记住)计算机的指令执行过程分为读取指令→分析指令→执行指令→保存结果在进行计算前,应做如下工作:①用助记符号指令(汇编语言)编写程序(源程序)②用汇编软件(汇编程序)将源程序汇编成计算机能识别的机器语言程序③将数据和程序通过输入设备送入存储器中存放读取指令阶段(就以书上举例,理解过程即可):①CPU将程序计数器PC中的内容XXH送地址寄存器AR②程序计数器PC的内容自动加1,为取下一条指令做好准备③地址寄存器AR将XXH通过地址总线AB送至存储器地址译码器译码,选中XXH 单元。
④CPU发出“读”指令⑤所选中的XXH单元中的内容由存储器送至数据总线DB上⑥经数据总线DB,CPU将读出的XXH单元中的内容送至数据寄存器DR⑦数据寄存器DR将其送至指令寄存器IR,经过译码,CPU通过控制器发出执行该条指令的控制命令。
执行指令阶段(就以书上举例,理解过程即可)与读取类似(这里从略)3-2 STC15F2K60S2单片机的存储器分为哪几个空间?中断服务程序的入口地址分别是什么?32个通用寄存器各对应哪些RAM单元?STC15F2K60S2单片机的存储器分为四个空间,分别为程序Flash存储器,数据Flash 存储器,内部数据存储器和扩展数据存储器。
中断服务程序的入口地址分别为:0003H 外部中断0中断服务程序的入口地址000BH 定时/计数器0中断服务程序的入口地址0013H 外部中断1中断服务程序的入口地址001BH 定时/计数器1中断服务程序的入口地址0023H 串行通信口1中断服务程序的入口地址002BH ADC中断服务程序的入口地址0033H 低电压检测中断服务程序的入口地址003BH PCA中断服务程序的入口地址0043H 串行通信口2中断服务程序的入口地址004BH SPI中断服务程序的入口地址0053H 外部中断2中断服务程序的入口地址005BH 外部中断3中断服务程序的入口地址0063H 定时/计数器2中断服务程序的入口地址0083H 外部中断4中断服务程序的入口地址32个通用寄存器分为寄存器组0,1,2,3,每个组8个8位的工作寄存器(R0~R7),均存在于内部数据存储器的低128字节内,范围为00H-1FH寄存器组0 R0~R7对应00H-07H寄存器组1 R0~R7对应08H-0FH寄存器组2 R0~R7对应10H-17H寄存器组3 R0~R7对应18H-1FH3-3 位地址29H,61H,7FH,E0H,F1H,各对应哪些单元的哪些位?29H——RAM位寻址区字节地址25H,对应D1位61H——RAM位寻址区字节地址2CH,对应D1位7FH——RAM位寻址区字节地址2FH,对应D7位E0H——高128字节/特殊功能寄存器SFR区,寄存器ACC(字节地址E0H)的D0位;F1H——高128字节/SFR,寄存器B(字节地址F0H)的D1位。
微机原理与接口技术(第四版)课后习题答案(1)

第1章微型计算机系统〔习题1.1〕简答题(2)总线信号分成哪三组信号?(3)PC机主存采用DRAM组成还是SRAM组成?(5)ROM-BIOS是什么?(6)中断是什么?(9)处理器的“取指-译码-执行周期”是指什么?〔解答〕②总线信号分成三组,分别是数据总线、地址总线和控制总线。
③ PC机主存采用DRAM组成。
⑤ ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。
⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。
⑨指令的处理过程。
处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
〔习题1.3〕填空题(2)Intel 8086支持___________容量主存空间,80486支持___________容量主存空间。
(3)二进制16位共有___________个编码组合,如果一位对应处理器一个地址信号,16位地址信号共能寻址___________容量主存空间。
(9)最初由公司采用Intel 8088处理器和()操作系统推出PC 机。
② 1MB,4GB③ 216,64KB(9)IBM,DOS〔习题1.4〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕CPU:CPU也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。
处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。
I/O设备通过I/O接口与主机连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章基础知识1.1 计算机中常用的计数制有哪些?解:二进制、八进制、十进制(BCD)、十六进制。
1.2 请说明机器数和真值的区别。
解:把符号数值化的数码称为机器数或机器码,原来的数值叫做机器数的真值。
1.3 完成下列数制的转换。
解:(1)166,A6H (2)0.75 (3)11111101.01B, FD.4H(4) 5B.AH, (10010001.011000100101)BCD1.4 8位和16位二进制数的原码、补码和反码可表示的数的范围分别是多少?解:原码(-127~ 127)、(-32767~ 32767)补码 (-128~ 127)、(-32768~ 32767)反码(-127~ 127)、(-32767~ 32767)1.5 写出下列真值对应的原码和补码的形式。
(1)X= -1110011B(2)X= -71D(3)X= 1001001B解:(1)原码:11110011 补码:10001101(2)原码:11000111 补码:10111001(3)原码:01001001 补码:010010011.6 写出符号数10110101B的反码和补码。
解:11001010,110010111.7 已知X和Y的真值,求[X Y]的补码(1)X=-1110111B Y= 1011010B(2)X=56D Y= -21D解:(1)11100011(2)001000111.8 已知X= -1101001B,Y= -1010110B,用补码求X-Y的值。
解:[X-Y]补=11101101 X-Y=-0010011B1.9 若给字符4和9的ASCII码加奇校验,应是多少?若加偶校验?解:奇校验:4 :(00110100B)34H,9:(10111001B)B9H偶校验:4 :(10110100B)B4H,9:(00111001B)39H1.10 若与门的输入端A、B、C的状态分别为1、0、1,则该与门的输出端状态为?若将这3个信号连接到或门,那么或门的输出又是什么状态?解:1.11 要使与非门输出“0”,则与非门输入端各位的状态应该是什么?如果使与非门输出“1”,其输入端各位的状态又应该是什么?解:全1;至少有一个01.12如果74LS138译码器的C、B、A三个输入端的状态为011,此时该译码器的8个输出端中哪一个会输出“0”?解:#Y31.13图1-16中,Y1=?Y2=?Y3=?138译码器哪一个输出端会输出低电平?解:Y1=0; Y2=1; Y3=1;Y6第2章微处理器和总线2.2说明8086的EU和BIU的主要功能。
在执行指令期间,BIU能直接访问存储器吗?解:执行单元EU负责执行指令。
EU在工作时不断地从指令队列取出指令代码,对其译码后产生完成指令所需要的控制信息。
数据在ALU中进行运算,运算结果的特征保留在标志寄存器FLAGS中。
总线接口单元BIU负责CPU与存储器、I/O接口之间的信息传送。
BIU取出的指令被送入指令队列供EU执行,BIU取出的数据被送入相关寄存器中以便做进一步的处理。
在执行指令期间,BIU能直接访问存储器.因为EU和BIU可以并行工作,EU需要的指令可以从指令队列中获得,这时BIU预先从存储器中取出并放入指令队列的。
在EU 执行指令的同时,BIU可以访问存储器取下一条指令或指令执行时需要的数据。
2.3 8088CPU工作在最小模式下:(1)当CPU访问存储器时,要利用哪些信号?(2)当CPU进行I/O操作时,要利用哪些信号?(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻?解:(1)要利用信号线包括#WR、#RD、IO/#M、ALE以及AD0~AD7、A8~A19。
(2)同(1)。
(3)所有三态输出的地址信号、数据信号和控制信号均置为高阻态。
2.4 总线周期中,什么情况下要插入TW 等待周期?插入TW周期的个数,取决于什么因素?解:在每个总线周期的T3的开始处若READY为低电平,则CPU在T3后插入一个等待周期TW。
在TW的开始时刻,CPU还要检查READY状态,若仍为低电平,则再插入一个TW 。
此过程一直进行到某个TW开始时,READY已经变为高电平,这时下一个时钟周期才转入T4。
可以看出,插入TW周期的个数取决于READY电平维持的时间。
2.5 若8088工作在单CPU方式下,在表2-5中填入不同操作时各控制信号的状态。
解:结果如下所示。
2.6 在8086/8088 CPU中,标志寄存器包含哪些标志位?各位为0(为1)分别表示什么含义?解:(略),见书第49页。
2.7 8086/8088 CPU中,有哪些通用寄存器和专用寄存器?说明它们的作用。
解:通用寄存器包含以下8个寄存器:AX、BX、CX和DX寄存器一般用于存放参与运算的数据或运算的结果。
除此之外:AX:主要存放算术逻辑运算中的操作数,以及存放I/O操作的数据。
BX:存放访问内存时的基地址。
CX:在循环和串操作指令中用作计数器。
DX:在寄存器间接寻址的I/O指令中存放I/O地址。
在做双字长乘除法运算时,DX 与AX合起来存放一个双字长数。
SP:存放栈顶偏移地址。
BP:存放访问内存时的基地址。
SP和BP也可以存放数据,但它们的默认段寄存器都是SS。
SI:常在变址寻址方式中作为源地址指针。
DI:常在变址寻址方式中作为目标地址指针。
专用寄存器包括4个段寄存器和两个控制寄存器:CS:代码段寄存器,用于存放代码段的段基地址。
DS:数据段寄存器,用于存放数据段的段基地址。
SS:堆栈段寄存器,用于存放堆栈段的段基地址。
ES:附加段寄存器,用于存放附加段的段基地址。
IP:指令指针寄存器,用于存放下一条要执行指令的偏移地址。
FLAGS:标志寄存器,用于存放运算结果的特征。
2.8 8086/8088 系统中,存储器为什么要分段?一个段最大为多少个字节?最小为多少个字节?解:分段的主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间。
一个段最大为64KB,最小为16B。
2.9 在8086/8088 CPU中,物理地址和逻辑地址是指什么?已知逻辑地址为1F00:38A0H,如何计算出其对应的物理地址?解:物理地址时CPU存取存储器所用的地址。
逻辑地址是段和偏移地址形式的地址,即汇编语言程序中使用的存储器地址。
若已知逻辑地址为1F00:38A0H,则对应的物理地址=1F00H x 16 38A0H=228A0H。
2.10 若CS=8000H,则当前代码段可寻址的存储空间的范围是多少?解(CS)=8000H时,当前代码段可寻址的存储空间范围为80000H~8FFFFH。
第3章 8088/8086指令系统3.1什么叫寻址方式?8086/8088CPU共有哪几种寻址方式?解:寻址方式主要是指获得操作数所在地址的方法. 8086/8088CPU具有:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址一变址寻址、基址一变址-相对寻址以及隐含寻址等8种寻址方式。
3.2设(DS)=6000H,(ES)=2000H,(SS)=1500H,(SI)=00A0H,(BX)=0800H,(BP)=1200H,字符常数VAR为0050H. 请分别指出下列各条指令源操作数的寻址方式,并计算除立即寻址外的其他寻址方式下源操作数的物理地址是多少?(1) MOV AX,BX (2) MOV DL,80H(3) MOV AX, VAR (4) MOV AX,VAR[BX][SI](5) MOV AL,'B' (6) MOV DI, ES: [BX](7) MOV DX,[BP] (8) MOV BX,20H[BX]解:(1)寄存器寻址。
因源操作数是寄存器,故寄存器BX就是操作数的地址.(2)立即寻址。
操作数80H存放于代码段中指令码MOV之后。
(3)直接寻址。
(4)基址一变址一相对寻址.操作数的物理地址=(DS) × 16+(SI)+(BX)+VAR= 60000H+00A0H+0800H+0050H=608F0H(5)立即寻址(6)寄存器间接寻址.操作数的物理地址= (ES) × 16+(BX)= 20000H+0800H = 20800H(7)寄存器间接寻址。
操作数的物理地址= (SS) × 16+(BP)= 15000H+1200H= 16200H(8)寄存器相对寻址.操作数的物理地址=(DS) × 16+(BX)+20H= 60000H+0800H+20H= 60820H3.3 假设(DS)= 212AH,(CS)= 0200H,(IP)= 1200H,(BX)= 0500H,位移量DATA=40H,[217A0H] =2300H,[217E0H]=0400H,[217E2H] =9000H 试确定下列转移指令的转移地址.(1) JMP 2300H(2) JMP WORD PTR[BX](3) JMP DWORD PTR[BX DATA]解:转移指令分为段内转移和段间转移,根据其寻址方式的不同,又有段内的直接转移和间接转移,以及段间的直接转移和间接转移地址。
对直接转移,其转移地址为当前指令的偏移地址(即IP的内容)加上位移量或由指令中直接得出;对间接转移,转移地址等于指令中寄存器的内容或由寄存器内容所指向的存储单元的内容。
(1) 段内直接转移。
转移的物理地址=(CS) × l6 2300H=02000H 2300H=04300H(2)段内间接转移。
转移的物理地址= (CS) × 16 [BX]= (CS) × l6 [217A0H]=02000H 2300H=04300H(3)段间间接转移。
转移的物理地址=[BX DATA]=[217E2H] × l6 [217E0H]=90000H 0400H=90400H3.4试说明指令MOV BX,5[BX]与指令LEA BX,5[BX]的区别。
解:前者是数据传送类指令,表示将数据段中以(BX 5)为偏移地址的16位数据送寄存器BX.后者是取偏移地址指令,执行的结果是(BX)= (BX)+5,即操作数的偏移地址为(BX) 5。
3.5设堆栈指针SP的初值为2300H,(AX)=50ABH,(BX)=1234H。
执行指令PUSH AX后,(SP)=?,再执行指令PUSH BX及POP AX之后,(SP)= ?(AX)= ?(BX)=?解:堆栈指针SP总是指向栈顶,每执行一次PUSH指令SP-2,执行一次POP 指令SP 2.所以,执行PUSH AX指令后,(SP)=22FEH;再执行PUSH BX及POP AX 后,(SP)=22FEH,(AX)=(BX)=1234H3.6 指出下列指令的错误:(1) MOV AH,CX (2) MOV 33H,AL(3) MOV AX, [SI][DI] (4) MOV [BX],[SI](5) ADD BYTE PTR[BP],256 (6) MOV DATA[SI],ES:AX(7) JMP BYTE PTR[BX] (8) OUT 230H,AX(9) MOV DS,BP (10) MUL 39H解:(1)指令错。