(何小海版)微机原理与接口技术部分课后习题.doc
《(何小海版)微机原理与接口技术部分课后习题.doc》由会员分享,可在线阅读,更多相关《(何小海版)微机原理与接口技术部分课后习题.doc(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、串操作指令特点:1. 可用前缀使其重复操作;2. 每操作一次自动修改SI和DI内容,当DF=0时为增量,DF=1为减量;3. 所有源操作数地址放在SI中,在DS段,串长 64K; 所有目标操作数地址放在DI中,在ES段,串长 64K;4. 用重复前缀时,如果条件满足且CX 0 时重复,每重复一次CX CX1,否则结束重复;5. 重复操作时IP不变,中断返回后继续操作。 使用串操作指令时注意:1. SI 源串首(末)址DI 目标串首(末)址;2. CX 串长度;3. 设DF 值;4. 选重复前缀;5. 使用条件重复前缀时,判断结束条件(即 是CX=0 还是ZF=0/1结束) 指令执行时间:计算机
2、中的计时单位:(1). 指令周期:执行一条指令所花的时间;(2). 总线周期:CPU 每访问一次内存或I/O端口所花的时间;(3). 时钟周期(T周期):计算机主频的倒数,用T表示, 即 T=1 / F 1、 试分别说明下列指令中源操作数和目的操作数采用的寻址方式: 答案: 目的操作数 源操作数(1)MOVAX,0FFFFH 寄存器 立即(2)MOVES,AX 寄存器 寄存器(3)XORCL,100H 寄存器 直接(4)ADDSI,DX 寄存器间 寄存器(5)MOVES:2000H,CL 直接 寄存器(6)SUBBX+SI,1 基+变 立即(7)ADCAX,BX+SI+10H 寄存器 相对基+
3、变(8)PUSHDS 隐含 寄存器(9) CLD 隐含(10) CMPBP+DI,CL 基+变 寄存器2、 若(BX)=1123H,(SI)=1968H,位移量=0313H,(DS)=1971H,试确定由这些寄存器和下列寻址方式产生的有效地址和物理地址: 答案: EA 物址(1) 直接寻址; 0313H 19A23H(2) 用BX的寄存器间接寻址; 1123H 1A833H(3) 用BX的寄存器相对寻址; 1436H 1AB46H(4) 用BX和SI的基址变址寻址; 2A8BH 1C19BH(5) 用BX和SI的相对基址加变址寻址。 2D9EH 1C4AEH3、 连续执行以下指令,并在空格中填
4、写执行指令的结果。 答案:MOVAX,2060HAL=60H AH=20H CF=MOVDS,AXDS=2060H AH=20H CF= ADDAL,AHAL=80H AH=20H CF=0 INCAXAL=81H AH=20H CF=0 MOVDX,512DL=00H DH=02H CF=0 SUBAX,DXAL=81H AH=1EH CF=0 第3章:汇编语言程序设计 1. 本章学习要求 (1). 应熟悉的内容:汇编语言的格式、语句行的构成。(2). 应掌握的内容: 指示性语句、指令性语句及相互区别、作用。(3). 应熟悉掌握的内容:各种结构的汇编语言程序设计的方法,特别是分支结构和循环结
5、构程序的特点和设计。2. 本章重点难点分析:伪指令、程序设计、子程序中参数通过堆栈传递较难。通过看例题、做作业和上机实习解决。如:汇编程序是将由助记符号所编写的汇编语言源程序转换为计算机能直接执行的目标程序的软件,即:汇编程序连接程序目标程序可执行文件 汇编语言源程序 .ASM MASM .OBJ LINK .EXE 上图可看出汇编语言源程序(扩展名为 .ASM)经过“汇编程序”汇编后生成二进制编码的目标程序(.OBJ),再经过“连接程序”生成可执行文件(.EXE)便可以上机执行或使用DEBUG程序进行调试。 而指示性语句(伪指令)是告诉汇编程序如何将汇编语言源程序转换为目标程序的语句,在可执
6、行的目标程序生成后的软件中,伪指令是看不见的。如:SEGMENT是表示一个段的开始,ENDS表示段结束;而ASSUME告诉汇编程序,将某一个段寄存器设置为存放某一个逻辑段的段址,即明确指出源程序中的逻辑段与物理段之间的关系。当汇编程序汇编一个逻辑段时,即可利用相应的段寄存器寻址该逻辑段中的指令或数据。也就是说ASSUME是建立一个段寄存器与段名的对照表,汇编时使汇编程序能找到本段属于哪个段寄存器,在此对照表中所出现的存储器操作数,寻址时只需给出偏移地址,否则还应给出段地址。 关键字NOTHING表示取消前面用ASSUME伪操作对这个段寄存器的设置。使用ASSUME语句,仅仅告诉汇编程序关于段寄
7、存器与定义段之间的对应关系。但它并不意味着汇编后这些段地址已装入了相应的段寄存器中,这些段地址的真正装入,仍需要用程序来完成,且这 4个段寄存器的装入略有不同。 3. 本章典型例题分析:【例1】若从0200H单元开始有100个数,编一个程序检查这些数,正数保持不变,负数都取补后送回。DATA SEGMENT ORG 0200HSTRING DB 4 DUP (-55,5 DUP(6,-10,-8,9),2 DUP(-4,0)DATA ENDSSTACK SEGMENT PARA STACK STACK DB 100 DUP (?)STACK ENDSCODE SEGMENT ASSUME CS
8、:CODE,DS:DATA,ES:DATA,SS:STACKSTART PROC FARBEGIN: PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX MOV ES, AX MOV CX, 100 LEA SI, STRINGAGAIN: MOV AL, SI AND AL, AL JNS OVER;AL0,跳至OVER NEG AL;AL0,对AL求补OVER: MOV SI, AL INC SI LOOP AGAIN INT 3 RETSTART ENDPCODE ENDS END BEG【例2】数据块间的搬移程序。程序要求把内存中一数据块
9、(称为源数据块)传送到另一存储区(称为目的数据块)。图4-11给出源数据块和目的数据块在存储器中可能的3种情况:两块分离和有部分重叠。对于两个数据块分离的情况,如图4-11(a),数据的传送从数据块的首址开始,或者从数据块的末址开始均可。但对于有部分重叠的情况,则要加以分析,否则重叠部分部分会因“搬移”而遭破坏,从图4-11(b)和(c)可以得出以下结论:当源数据块首址目的块首址时,从数据块末地址开始传送数据。当源数据块首址目的块首址时,从数据块首地址开始传送数据。流程图如图4-12所示, 00000H 00000H 00000H 源数 据块 源数 目的 据块 数据块 目的 源数 目的 数据块
10、 据块 数据块FFFFFH FFFFFH FFFFFH (a) (b) (c)图4-11 数据块之间的三种情况开 始SI源数据块首址DI目的数据块首址CX搬家字节数(SI)(DI)?NYSI(SI)+(CX)-1DI(DI)+(CX)-1(DI)(SI)SI(SI)+1DI(DI)+1SI(SI)-1DI(DI)-1DI(SI)DI(SI)DI(SI)(CX)=0?(CX)=0?结 束NNYY图 4-12程序如下:STACKSEGMENTSTACKDW64DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,SS:STACKSTART:MOVCX,0010H;取搬家字
11、节数(16个字节)MOVSI,3100H;取源块首址MOVDI,3200H;取目的块首址CMPSI,DI;从首址开始?JAA2;是,转移ADDSI,CX;否,以末地址开始搬家ADDDI,CXDECSIDECDIA1: MOVAL,SI;从末址开始搬家MOVDI,ALDECSIDECDIDECCXJNEA1JMPA3A2:MOVAL,SI;从首址开始搬家MOVDI,ALINCSIINCDIDECCXJNEA2A3:MOVAH,4CHINT21HCODEENDSENDSTART4. 本章作业(带答案):2、若在自2000H单元开始有一个1000个字节的数据块,要把它传送到自2200H开始的存储区中
12、去,用以下三中方法,分别编制程序:(1) 不用串操作指令。(2) 用单个传送的串操作数据传送指令。(3) 用带重复前缀的串操作数据传送指令。程序如下:DATASEGMENTORG2000HN1DBn1,n2,n1000N2EQU2000H+10001CONEQU1000DATAENDSSTACKSEGMENTSTACKSTACKDW100DUP(?)STACKENDSCODESEGMENTORG1000HASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKMAINPROCSTART:MOVAX,DATAMOVDS,AXMOVES,AXLEASI,N1+10001 ; (
13、2) ; (3)MOVDI,N2MOVCX,CON;STDL1:MOVAL,SI;MOVSB ;REP MOVSB MOVDI,ALDECSIDECDILOOPL1;LOOP L1MOVAH,4CHINT21HMAINENDPCODEENDSENDSTART3、若在存储器中有数a、b、c、d(它们连续存放),编写一个程序实现:(a * 10 + b)*10+c)*10+d (假设和小于65535)程序如下:DATASEGMENTBCMDWa,b,c,dDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATABCD1PROCFARSTART:MOVAX,DATAMOVDS
14、,AXLEASI,BCMMOVCX,3MOVAX,SIL1:INCSISHLAX,1;(AX)(AX)2MOVBX,AX;(BX)(AX)2SHLAX,1;(AX)(AX)4SHLAX,1;(AX)(AX)8ADDAX,BX;(AX)(AX)10ADDAX,SILOOPL1INCSIMOVSI,AX MOVAH,4CHINT21HBCD1ENDPCODEENDSENDSTART4、已知数组A包含10个互不相等的整数,数组B包含15个互不相等的整数。试编写一程序,将既在A中出现又在B中出现的偶数存放在数组C中。程序如下:DATA SEGMENT ORG 0500H DATAA DW A1,A2,
15、 A10 DATAB DW B1,B2, B15 COUNTA EQU 10 COUNTB EQU 15 DATAC DW 10 DUP(?) DATA ENDS STACK SEGMENT STACK STACK DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START PROC FAR BEGIN: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV ES,AX MOV DS,AX LEA BX,DATAC;(BX)=数组C首址 CLD LEA SI,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小海 微机 原理 接口 技术 部分 课后 习题
限制150内