微型计算机系统概述.pdf

上传人:文*** 文档编号:88939967 上传时间:2023-05-04 格式:PDF 页数:42 大小:6.08MB
返回 下载 相关 举报
微型计算机系统概述.pdf_第1页
第1页 / 共42页
微型计算机系统概述.pdf_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《微型计算机系统概述.pdf》由会员分享,可在线阅读,更多相关《微型计算机系统概述.pdf(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第1章 微型计算机系统概述1.简述微型计算机系统的组成。2.简述计算机软件的分类及操作系统的作用。3.CPU是什么?写出Intel微处理器的家族成员。4.写出10条以上常用的DOS操作命令。参考答案1.答:微型计算机系统由硬件和软件两大部分组成,硬件又可细分为主机(由CPU、存储器、控制电路、接口等构成)、输入设备(如键盘)和输出设备(如显示器);软件可细分为系统软件(如操作系统)和应用软件。3.答CPU(Central Processing Unit中央处理单元)是计算机的核心部件,它包括控制器和算术逻辑运算部件等。Intel微处理器的家族成员有:8088/8086.80186 80286、

2、80386、80486、Pentium(80586)Pentium II、Pentium III 和Pentium IVO第2章计算机中的数制和码制i.将下列十进制数转换成二进制数:(1)49;(2)73.8125;(3)79.752.将二进制数变换成十六进制数:(1)101101B;(2)1101001011B;(3)1111111111111101B;(4)100000010101B;(5)1111111B;(6)10000000001B3.将十六进制数变换成二进制数和十进制数:(1)FAH;(2)5BH;(3)78A1H;(4)FFFFH;(5)34.2AH;(6)B8.93H4.将下列

3、十进制数转换成十六进制数:(1)39;(2)299.34375;(3)54.56255.将下列二进制数转换成十进制数:(1)10110.101B;(2)10010010.001B;(3)11010.1101B6.计算(按原进制运算):(1)10001101B+11010B;(2)10111B+11100101B;(3)1011110B-1110B;(4)124AH+78FH;(5)5673H+123H;(6)1000H-F5CH;7.已知a=10 11B,b=110 0 1B,c=10 0 110 B,按二进制完成下列运算,并用十进制运算检查计算结果:(1)a+b;(2)c-a-b;(3)a

4、,b;(4)c/b8 .已知a=0 0 1110 0 0 B,b=110 0 0 111B,计算下列逻辑运算:(1)a A N D b;(2)a O R b;(3)a X O R b;(4)N O T a9 .设机器字长为8 位,写出下列各数的原码和补码:(1)+10 10 10 1B;(2)-10 10 10 1B;(3)+1111111B;(4)-1111111B;(5)+10 0 0 0 0 0 B;(6)-10 0 0 0 0 0 B10.写出下列十进制数的二进制补码表示(设机器字长为8 位):(1)15;(2)-1;(3)117;(4)0;(4)-15;(5)12 7;(6)-12

5、8;(7)8 011.设机器字长为8 位,先将下列各数表示成二进制补码,然后按补码进行运算,并用十进制数运算进行检验:(1)8 7-7 3;(2)8 7+(-7 3);(3)8 7-(-7 3);(4)(-8 7)+7 3;(5)(-8 7)-7 3;(6)(-8 7)一 (-7 3);12.已知 a,b,c,d 为二进制补码:a=0 0 110 0 10 B,b=0 10 0 10 10 B,c=1110 10 0 1B,d=10 1110 10 B,计算:(1)a+b;(2)a+c;(3)c+b;(4)c+d;(5)a-b;(6)c-a;(7)d-c;(8)a+d-c13.设下列四组为8

6、位二进制补码表示的十六进制数,计算a+b 和 a-b,并判断其结果是否溢出:(1)a=3 7 H,b=5 7 H;(2)a=0 B 7 H,b=0 D 7 H;(3)a=0 F 7 H,b=0 D 7 H;(4)a=3 7 H,b=0 C 7 H14 .求下列组合B C D 数的二进制和十六进制表示形式:(1)3 2 5 1(2)12 9 0 7 (3)A B C D (4)a b e d15 .将 下列算式中的十进制数表示成组合B C D 码进行运算,并用加6/减6 修正其结果:(1)3 8+4 2;(2)5 6 +7 7;(3)9 9+8 8;(4)3 4 +6 9;(5)3 8-4 2;

7、(6)7 7-5 6;(7)15-7 6;(8)8 9-2 316.将下列字符串表示成相应的A S C I I 码(用十六进制数表示):(1)E xa m p l e 1;(2)J i n a n U n i v e r s i ty;(3)-10 8.6 5 2;(4)H o w a r e yo u?;(5)C o m p ute r (6)I n te r n e t W e b17.将下列字符串表示成相应的A S C H 码(用十六进制数表示):(1)H e l l o (2)12 3 4 5 6;(注:表 示 回 车)(3)A S C I I;(4)T h e n um b e r

8、i s 2 3 15 参考答案1.解:(1)4 9=0 0 11 0 0 0 1B (2)7 3.8 12 5=0 10 0 10 0 1.110 1B(3)7 9.7 5=0 10 0 1111.11B3 .解:(1)F A H=1111 10 10 B=2 5 0 D (2)5 B H=0 10 1 10 11B=9 1D(3)7 8 A 1H=O 111 10 0 0 10 10 0 0 0 1B=3 0 8 8 1D(4)F F F F H=1111 1111 1111 1111B=6 5 5 3 5 D5.解:(1)10 110.10 1B=2 2.6 2 5 (2)10 0 10

9、0 10.0 0 1B=14 6.0 6 2 5(3)110 10.110 1B=2 6.8 12 57.解:a=10 11B=l l,b=110 0 1B=2 5,c=10 0 110 B=3 8(1)a+b =10 0 10 0 B=3 6 (2)c-a-b=10 B=2(3)a b=10 0 0 10 0 11B=2 7 5 (4)c/b=l.110 1B (=13)9.解:(1)+10 10 10 1B 原码 0 10 10 10 1B 补码 0 10 10 10 1B(2)-10 10 10 1B(3)+1111111B(4)-1111111B(5)+10 0 0 0 0 0 B(6

10、)-10 0 0 0 0 0 B原码 110 10 10 1B 补码 10 10 10 11B原码 0 1111111B 补码 0 1 111 11 I B原码 11111H 1B 补码 10 0 0 0 0 0 1B原码 0 10 0 0 0 0 0 B 补码 0 10 0 0 0 0 0 B原码 110 0 0 0 0 0 B 补码 110 0 0 0 0 0 B11.解:按补码表示+8 7 =0 10 1(H U B;+7 3 =0 10 0 10 0 1B;-8 7=10 10 10 0 1B;-7 3=10 11 0 111B(1)8 7-7 3=0 10 1 0 111B-0 10

11、 0 10 0 1B=1110 B=14(2)8 7+(-7 3)=0 10 1 0 111B+10 11 0 111B=l 0 0 0 0 1110 B=14 (舍去进位)(3)8 7-(-7 3)=0 10 1 0 111B-10 11 0 111B=-1 10 10 0 0 0 0 B=-9 6 (溢出)(4)(-8 7)+7 3=10 10 10 0 1B+0 10 0 10 0 1B=l l l l 0 0 10 B=-14(5)(-8 7)-7 3=10 10 10 0 1B-0 10 0 10 0 1B=-l 0 110 0 0 0 0 B=9 6 (溢出)(6)(-8 7)-(

12、-7 3)=10 10 10 0 1B-10 11 0 111B=l l l l 0 0 10 B=-1413.解:(1)a=3 7 H,b=5 7 H;a+b=8 E H;a-b=-l E 0 H=-3 2(2)a=0 B 7 H,b=0 D 7 H;a+b=l 8 E H=-114;a-b=-l E 0 H=-3 2(3)a=0 F 7 H,b=0 D 7 H;a+b=l C E H=-5 0;a-b=2 0 H=3 2(4)a=3 7 H,b=0 C 7 H;a+b=F E H=-2;a-b=-l 7 0 H=11215.解:(1)将 3 8、4 2 表示成组合B C D 码:3 8 H

13、、4 2 H,然后按二进制进行运算,并根据运算过程中的A F,C F 进行加6/减6 修正。3 8 H+4 2 H=7 A H,低 4 位需要加 6 修正:7 A H+6=8 0 H,所以有 3 8+4 2=8 0;(2)5 6 H+7 7 H=C D H,高4位、低4位都应加6修正:C D H+6 6 H=1位都,因此有 5 6+7 7 =13 3;(3)9 9 H+8 8 H=1 2 1H(A F=1),高 4 位、低 4 位都应加 6 修正:1 2 1H+6 6 H=1 8 7 H,因此 9 9+8 8=18 7(4)3 4 H+6 9 H=9 D H,低4位需要加6修正:9 D H+6

14、=A 3 H,修正结果使高4位超出9,这时再对高4位进行加6修正:A 3 H+6 0 H=l 0 3 H,因此3 4+6 9=10 3(5)3 8 H-4 2 H=-1 F 6 H,因C F=1(有借位),高4位应减6修正:T F 6 H-6 0 H=T 9 6 H,指令的借位应表示成10 0的补码,因此3 8-4 2=9 6-10 0=-4(6)7 7 H-5 6 H=2 1H,不需要修正,因此 7 7-5 6=2 1(7)15 H-7 6 H=-1 9 F H,高 4 位、低 4 位都应减 6 修正:-1 9 F H-6 6 H=-1 3 9 H,因此 15-7 6=3 9-10 0=-6

15、 1(8)8 9 H-2 3 H=6 6 H,不需要修正,因此 8 9-2 3=6 617.解:字符串的A S C H码(1)4 8,6 5,6 C,6 C,6 F(2)3 1,3 2,(3)4 1,5 3,(4)5 4,6 8,3 1,3 53 3,0 D,3 4,4 3,4 9,4 96 5,2 0,6 E,(用十六进制数表示)为:3 5,3 67 5,6 D,6 2,6 5,7 2,2 0,6 9,7 3,2 0,3 2,3 3,第 3 章 微机系统中的微处理器3.1 例题例 3-1 有 一 块 12 0 个字的存储区域,其起始地址为6 2 5 A:2 3 4 D,写出这个存储区域首末单

16、元的物理地址。解:存储区域的字节数为:2 X 12 0=2 4 0=0 F 0 H,首地址为:6 2 5 A H X 10 H+2 3 4 D H=6 4 8 E D H,末地址为:6 4 8 E D H+0 F 0 H=6 4 9 D D H,或者:6 2 5 A H X 1 0 H+(2 3 4 D H+0 E 0 H)=6 2 5 A 0 H+2 4 3 D H =6 4 9D D H 例 3-2两个十六进制数782 5 H 和 5 A 1 F H 分别相加和相减后,求运算结果及各标志位的值。解:782 5 H+5 A 1 F H=O D 2 4 4 H,A F=1,C F=0,Z F=

17、0,S F=1,O F=1 (当将 782 5 H 和 5 A 1 F H看作有符号数时,两个正数相加得到一个负数,结果显然是错误的,实际上,在运算过程中,次高位产生了进位而最高位没有产生进位,故运算产生溢出),P F=1 (因为在4 4 H 中包含有偶数个1)。782 5 H-5 A 1 F H=1 E O 6 H,A F=1,C F=0,Z F=0,S F=0,0 F=0,P F=h5 A 1 F H 782 5 H=O E 1 F A H,A F=0,C F=1,Z F=0,S F=1,0 F=0,P F=1。3.2 习 题1.微处理器内部结构由哪儿部分组成?阐述各部分的主要功能。2.微

18、处理器级总线有哪几类?各类总线有什么作用?3.为什么地址总线是单向的,而数据总线是双向的?4.80 86/80 88微处理器内部有哪些寄存器?其主要作用是什么?5.如果某微处理器有2 0 条地址总线和1 6 条数据总线:(1)假定存储器地址空间与I/O 地址空间是分开的,则存储器地址空间有多大?(2)数据总线上传送的有符号整数的范围有多大?6.将十六进制数6 2 A 0 H 与下列各数相加,求出其结果及标志位C F、A F、S F、Z F、0 F 和P F 的值:(1)1 2 3 4 H;(2)4 3 2 1 H;(3)C F A O I I;(4)9D 6 0 1 I7.从下列各数中减去4

19、A E 0 H,求出其结果及标志位C F、A F、S F、Z F、0 F 和 P F 的值:(1)1 2 3 4 H;(2)5 D 90 H;(3)90 90 H;(4)E A 0 4 H8.什么是逻辑地址?什么是物理地址?它们之间的关系如何?9.写出下列存储器地址的段地址、偏移地址和物理地址:(1)2 1 3 4:1 0 A 0;(2)1 F A 0:0 A 1 F;(3)2 6 7A:B 8761 0 .给定一个数据的有效地址为2 3 5 9H,并 且(D S)=4 90 B H,求该数据的物理地址。1 1 .如果在一个程序段开始执行之前,(C S)=0 A 7F 0 H,(I P)=2

20、B 4 0 H,求该程序段的第一个字的物理地址。1 2 .下列操作可使用哪些寄存器?(1)加法和减法;(2)循环计数;(3)乘法和除法;(4)保存段地址;(5)表示运算结果的特征;(6)指令地址;(7)从堆栈中取数的地址;1 3 .I B M P C 有哪些寄存器可用来指示存储器的地址?1 4 .设(B X)=6 3 7D H,(S I)=2 A 9B H,位移量=0 C 2 3 7H,(D S)=3 1 0 0 H,求下列寻址方式产生的有效地址和物理地址:(1)直接寻址;(2)用 B X 的寄存器间接寻址;(3)用 B X 的寄存器相对寻址;(4)用 B X 和 S I 的基址变址寻址;(5

21、)用 B X 和 S I 的基址变址且相对寻址1 5 .若(C S)=5 2 0 0 H 时,物理转移地址为5 A 2 3 8H,那 么(C S)变 成 780 0 H 时,物理转移地址为多少?1 6 .设(C S)=0 2 0 0 H,(I P)=2 B C 0 H,位移量=5 1 1 9H,(B X)=1 2 0 0 H,(D S)=2 1 2 A H,(2 2 4 A 0 H)=0 6 0 0 1 1,(2 75 B 9H)=0 98A I l o 求使用下列寻址方式时的转移地址:(1)段内直接寻址方式;(2)使用B X 的寄存器寻址的段内间接寻址方式;(3)使用B X 的寄存器相对寻址

22、的段内间接寻址方式;1 7.将下列两组的词汇和说明关联起来:(1)C P U;A.保存当前栈顶地址的寄存器;(2)E U;B.指示下一条要执行指令的地址;(3)B I U;C.总线接口部件,实现执行部件所需要的所有总线操作;(4)I P;D.分析并控制指令执行的部件;(5)S P;E.存储程序、数据等信息的记忆装置,P C 机有RA M 和 RO M两种;(6)存储器;F.以后进先出方式工作的存储器空间:(7)堆栈:G.把汇编语言程序翻译成机器语言程序的系统程序;(8)指令;H.惟一代表存储器空间中的每个字节单元的地址:(9)状态标志;I.能被计算机直接识别的语言;(1 0 )控制标志;J.用

23、指令的助记符、符号地址、标号等符号书写程序的语言;(1 1)段寄存器;K.把若干个模块连接起来成为可执行文件的系统程序;(1 2)物理地址;L.保存各逻辑段的起始地址的寄存器;(1 3)汇编语言;M.控制操作的标志,P C 机有三位:DF、IF、TF;(1 4)机器语言;N.记录指令操作结果的标志,P C 机有六位:O F、SF、Z F、A F、P F、C F;(1 5)汇编程序;0.执行部件,由算术逻辑单元(A L U)和寄存器组等组成;(1 6)连接程序;P.由汇编程序在汇编过程中执行的指令;(1 7)目标码;Q.告诉C P U 要执行的操作,在程序运行时执行;(1 8)伪指令R.机器语言

24、代码。参考答案1.答:微处理器内部结构主要由算术逻辑运算单元(A L U)、控制器、工作寄存器和I/O控制逻辑组成。算术逻辑运算单元是C P U 的核心,它完成所有的运算操作;控制器是C P U的“指挥中心”,只有在它的控制下,C P U 才能完成指令的读入、寄存、译码和执行;工作寄存器用于暂时存储寻址信息和计算中间结果;I/O 控制逻辑用于处理I/O 操作。3.答:由于在计算机中地址总是由C P U 产生的,因此地址总线是单向的。而数据可从C P U写到存储器,也可从存储器读到C P U,因此数据总线是双向的。5.解:存储空间为2”=1048576=1M字节,数据总线上传送的有符号整数的范围

25、为一 32 7 68 +32 7 67。7.解:(1)1 2 34 H-4 A E 0 H=C 7 5 4 H;C F=1,A F=0,SF=1,Z F=0,0 F=0,P F=0(2)5 D9 0 H -4 A E 0 H-1 2 B 0 H;C F=0,A F=0,SF=0,Z F=0,0 F=0,P F=0(3)9 0 9 0 H-4 A E 0 H=4 5 B 0 H;C F=0,A F=0,SF=0,Z F=0,0 F=0,P F=0(4)E A O 4 H 4 A E 0 H=9 F 2 4 H;C F=O,A F=O,SF=1,Z F=O,0 F=0,P F=19.解:(1)段地

26、址:2 1 34 1 1;偏移地址:1 0 A 0 H;物理地址:2 2 3E 0 I1(2)段地址:1 F A 0 H;偏移地址:0 A 1 F H;物理地址:2 0 4 1 F H(3)段地址:2 67 A II;偏移地址:B 8 7 6H;物理地址:32 0 1 6H1 1.解:物理地址为:0 A 7 F 0 H X 1 0 H+2 B 4 0 H=A 3330 Ho1 3.答:指示存储器地址的寄存器有:SI,DI,B X,B P1 5.解:偏移地址为5 A 2 38 H 5 2 0 0 H X 1 0 H=8 2 38 H,因 此 当(C S)变 成 7 8 0 0 H 时,物理转移地

27、址为 7 8 0 0 H X 1 0 H+8 2 38 H=8 0 2 38 H1 7.答:两组词汇和说明的关联关系为(1)0;(7)F;(1 3)J;(2)D;(8)Q;(1 4)-I;(3)C;(9)N;(1 5)G;(4)B;(1 0)M;(1 6)K;(5)A;(1 1)L;(1 7)R;(6)E;(1 2)H;(1 8)P。第4章 汇编语言程序设计基本方法4.1 例题例 4-1写出下列变量的内容:V A RI DB 1 2 5,1 2 5/3,-1,-1 0 HV A R2 DW 1 2 5,1 2 5/3,-1,-1 0 HV A R3 DB A B ,C DV A R4 DW A

28、 B ,C D解:按卜六进制数依次写出各个变量的内容为:V A RI:7 D,2 9,F F,F 0V A R2:0 0 7 D,0 0 2 9,F F F F,F F F 0V A R3:4 1,4 2,4 3,44V A R4:4 1 4 2,4 34 4按内存存储顺序给出:7 D,2 9,F F,F 0,7 D,0 0,2 9,0 0,F F,F F,F 0,F F,4 1,42,4 3,4 4,4 2,4 1,4 4,4 3例 4.2 设有下列伪指令:STA RT DB 1,2,3,4,A B C DDB 3 DU P (?,1)B U F DB 1 0 DU P (?),1 5L E

29、 Q U B U F-STA RT求 L的值。解:由 E Q U 伪指令知,L的值为B U F 的偏移地址减去STA RT的偏移地址,而变量STA RT共占用8个字节,第 2行定义的变量(无变量名)共占用6个字节,因此,L的值为8+6=1 4=0 E H。例 4.3 在缓冲区D A T A B U F 中保存有一组无符号数据(8 位),其数据个数存放在D A T A B U F的 第 1、2个字节中,要求编写程序将数据按递增顺序排列。(与教材p.U 4 例 4.3.1 0 类似,但方法不同)解:这里采用双重循环实现数据的排序,这可使程序变得简单。N=100;设有1 0 0个数据STACK SE

30、GMENT STACK STACKDW 10011 DUP(?)TOP LABEI.WORDS T A C K E N D SD A T A S E G M E N TD A T A B U F D W ND B N D U P(?)D A T A E N D SC O D E S E G M E N TA S S U M E C S:C O D E,D S:D A T A,E S:D A T A,S S:S T A C KS T A R T:M O V A X,D A T AM O V D S,A XM O V E S,A XM O V A X,S T A C KM O V S S,A XL

31、 E A S P,T O P;取出随机数据M O V C X,D A T A B U FL E A S I,D A T A B U F 4-2M O V B L,2 3M O V A L,1 1L P:M O V S I ,A LI N C S IA D D A L,B LL O O P L P;数据排序M O V C X,D A T A B U FD E C C XL E A S L D A T A B U F+2A D D S I.C XL P1:PU S H C XPU S H S IL P2:M O V A L,S I C M P A L,S I-1 J A E N O X C H G

32、X C H G A L,S I-1 M O V S I ,A LN O X C H G:D E C S IL O O P L P2PO P S IPO P C XL O O P L P1;数据排序结束M O V A H,4 C H ;返回 D O SM O V A L,0I N T 2 1 HC O D E E N D SE N D S T A R T例 4-4有一组数据(1 6 位而进制数)存放在缓冲区B U F 1 中,数据个数保存在B U F 1 的头两个字节中。要求编写程序实现在缓冲区中查找某一数据,如果缓冲区中没有该数据,则将它插入到缓冲区的最后;如果缓冲区中有多个被查找的数据,则只

33、保留第一个,将其余的删除。解:在缓冲区B U F 中搜索指定的数据,当没有找到时,插入该数据;当找到时,进入搜索多余的重复数据,每找到一个就删除它(将缓冲区的剩余数据向前移动一个字)。当然应注意更新缓冲区的长度单元。S T A C K S E G M E N T S T A C K S T A C K D W 1 0 0 H D U P(?)T O P L A B E L W O R DS T A C K E N D S:设缓冲区原有1 0个字,指定的数据为(N E W)=5 6 A A HD A T A S E G M E N TB U F D W 1 0D W 1 0 0 0 H,0 0

34、2 5 H,6 7 3 0 H,6 7 5 8 H,7 3 4 4 H,2 0 2 3 H,0 0 2 5 H,6 7 4 5 H,1 0 A 7 H,0 B 6 1 2 HD W 1 0 D U P(?)N E W D W 5 6 A A HD A T A E N D SC O D E S E G M E N TA S S U M E C S:C O D E,D S:D A T A,E S:D A T A,S S:S T A C KS T A R T:M O V A X,D A T AM O V D S,A XM O V E S,A XM O V A X,S T A C KM O V S S

35、,A XL E A S P,T O P;搜索指定的数据M O V C X,B U FL E A S L B U F+2M O V A X,N E WL I:C M P A X,S I JZ L2.I N C S II N C S IL O O P L I :没有找到,则插入数据M O V S I ,A XI N C B U FJ M P O K ;找到后,在剩余部分搜索重复的数据L 2:D E C C XI N C S II N C S IL 3:C M P A X,S I J Z L 4I N C S II N C S IL O O P L 3J M P O K ;找到一个重复数据,则删除它

36、L 4:PU S H S ID E C C XPU S H C XM O V D I,S II N C S II N C S IC L DR E P M O V S WD E C B U FPO P C XPO P S IJ M P L 3 ;删除后,返回继续搜索重复的数据0 K:M O V A H,4 C H ;返回 D O SM O V A L,0I N T 2 1 HC O D E E N D SE N D S T A R T例 4.5 在缓冲区D A T 1 和 D A T 2 中,存放着两组递增有序的8 位二进制无符号数,其中前两个字节保存数组的长度,要求编程实现将它们合并成一组递增

37、有序的数据D A T,D A T的前两个字节仍用于保存数组长度。解:这里要用到3个指针的使用。对于写指针首选使用D I,两个读指针可采用S I 和B X,分别指示D A T 1 和 D A T 2。这样可适时使用字符串指令,以简化程序设计。在设计中,将用B X 指示的缓冲区D A T 2 内容读入A L,这样,当要将D A T 1 的内容传送到D A T 时,可采用M O V S B 指令;当要将D A T 2 的内容传送到D A T 时,可采用S T O S B 指令。S T A C K S E G M E N T S T A C K S T A C K D W 1 0 0 H D U P(

38、?)T O P L A B E L W O R DS T A C K E N D S ;设D A T 1中有1 0个数据,D A T 2中有1 3个数据D A T A S E G M E N TD A T 1 D W 1 0D B 1 0 H,2 5 H,6 7 H,6 8 H,7 3 H,8 3 H,9 5 H,0 A 8 H,0 C 2 H,0 E 6 HD A T 2 D W 1 3D B 0 5,1 2 H,2 6 H,4 5 H,5 8 H,6 5 H,6 7 H,7 0 H,7 6 H,8 8 H,9 2 H,O C D H,O D E HD A T D W?D B 2 0 0 D

39、 U P(?)D A T A E N D SC O D E S E G M E N TA S S U M E C S:C O D E,D S:D A T A,E S:D A T A,S S:S T A C KS T A R T:M O V A X,D A T AM O V D S,A XM O V E S,A XM O V A X,S T A C KM O V S S,A XL E A S P,T O PM O V C X,D A T 1M O V D X,D A T 2M O V D A T,C XA D D D A T,D XL E A S I,D A T 1+2L E A B X,D A

40、 T 2+2L E A D I,D A T+2C L DL I:M O V A L,B X I N C B XL2:C M P A L,S I J B L 3M O V S B ;D A T 1区中的数据传送到D A T|xD E C C XJ Z L 4J M P L 2L 3:S T O S B ;D A T 2区中的数据传送到D A T区D E C D XJ Z L 5J M P L IL 4:M O V S I,B XD E C S IM O V C X,D XL 5:R E P M O V S BM O V A H,4 C H ;返回 D O SM O V A L,0I N T 2

41、1 HC O D E E N D SE N D S T A R T例 4.6 已知缓冲区B U F A 内有2 0 个互不相等的整数(其序号从0 到 1 9),缓冲区B U F B内有3 0 个互不相等的整数(其序号从。到 2 9)o 编写程序完成:将既在B U F A 中出现又在B U F B 中出现的整数(设为x)存放在缓冲区B U F C 中,并将x 在 B U F A 和 B U F B 中的序号分别存放于缓冲区B U F C A 和 B U F C B 中。解:这里需要5 个指针,但 B U F C、B U F C A 和 B U F C B 为同步操作,只需要一个指针,寻址方式为寄

42、存器相对寻址,即(设 A L 为找到的值,D L、B L 为序号)M O V B U F C D I ,A LM O V B U F C A D I ,D LM O V B U F C B D I ,B L ;对序号也应小心处理,我们采用寄存器相对寻址,例如M O V A L,B U F A S I ,其中S I即为序号。S T A C K S E G M E N T S T A C K S T A C K D W 1 0 0 H D U P(?)T O P L A B E L W O R DS T A C K E N D SN l=2 0N 2=3 0D A T A S E G M E N

43、TB U F A D B 1 0 1 1,2 5 H,6 7 H,2 6 H,6 8 H,7 3 H,8 3 H,5 8 H,0,0 6 H,1 2 H,O C D H,9 5 HD B 0 A 8 H,0 C 2 H,4 8 H,0 E 6 H,0 F 1 H,1 A H,0 F 5 HB U F B D B 0 5,1 2 H,2 6 H,4 5 H,5 3 H,6 0 H,6 A H,7 F H,7 6 H,8 8 H,9 2 H,O C H I,O D E H,0 E 1 H,0 F 5 HD B 0 9,1 7 H,2 3 H,4 8 H,5 8 H,6 5 H,6 7 H,7 0

44、H,7 C H,8 2 H,9 6 H,O C D H,0 D 1 H,0 E 1 H,O F E HB U F C D B 2 0 D U P(?)B U F C A D B 2 0 D U P(?)B U F C B D B 2 0 D U P(?)D A T A E N D SC O D E S E G M E N TA S S U M E C S:C O D E,D S:D A T A,E S:D A T A,S S:S T A C KS T A R T:M O V A X,D A T AM O V D S,A XM O V E S,A XM O V A X,S T A C KM O

45、V S S,A XL E A S P,T O P;以B U F A为外循环,每个字节与B U F B的所有字节比较(构成内循环),:以确定是否存在相同的值。M O V C X,N1X O R S I,S IX O R D I,D IL I:M O V A L,B U F A S I P U S H C XM O V C X,N2X O R B X,B XL 2:C M P A L,B U F B t B X J Z L 3I NC B XL O O P L 2J M P L 4;找到相同的值后,进行值传送和序号保存。L 3:M O V BUFCDI,ALM O V D X,S IM O V B

46、 U F C A D I ,D LM O V B U F C B D I ,B LI NC D IL 4:P O P C XI NC S IL O O P L IM O V A H,4 C H ;返回 D O SM O V A L,0I NT 2 1 HC O D E E ND SE ND S T A R T4.2 习 题1.写出完成下列要求的变量定义语句:(1)在变量 varl 中保存 6 个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量 var2 中保存字符串:BYTE ,word ,WORD;(3)在缓冲区bufl中留出100个字节的存储空间;(4)在缓

47、冲区buf2中,保 存 5 个字节的55H,再保存10个字节的240,并将这一过程重复7 次:(5)在变量var3中保存缓冲区bufl的长度;(6)在变量pointer中保存变量varl和缓冲区bufl的偏移地址。2.设变量va r l的逻辑地址为0 1 0 0:0 0 0 0,画出下列语句定义的变量的存储分配图:va r l D B 1 2,-1 2,2 0/6,4 D U P (0,5 5 H)va r 2 D B A s s e mb le va r 3 D W A B ,c d ,E va r 4 D W va r 2va r 5 D D va r 23.指令正误判断,对正确指令写出源

48、和目的操作数的寻址方式,对错误指令指出原因(设 V A R I,V A R 2 为字变量,L 1 为 标 号):(1)M O V S I,1 0 0 (2)M O V B X,V A R I S I(3)M O V A X,B X(5)M O V B P,A L(7)M O V C S,A X(9)M O V B X S I ,1(1 1)A D D A X,L E NG T H V A R I(1 3)S U B D I ,78H(1 5)P U S H 1 0 0 H(1 7)X C H G A X,E S(1 9)J M P L l+5(2 1)S H L B L,2(2 3)M U L

49、 C X(2 5)A D C C S:0 1 0 0 ,A H(4)M O V A L,D X(6)M O V V A R I,V A R 2(8)M O V D S,0 1 0 0 H(1 0)M O V A X,V A R 1+V A R 2(1 2)O R B L,T Y P E V A R 2(1 4)M O V S V A R I,V A R 2(1 6)P O P C S(1 8)M O V D S,C S(2 0)D I V A X,1 0(2 2)M O V A L,1 5+2 3(2 4)X C H G C L,S I(2 6)S B B V A R I-5,1 5 44.说

50、明卜列指令对的区别:(1)(2)(3)(4)(5)(6)(7)M O V A X,V A R IM O V A X,V A R 2与 M O V A X,O F F S E T V A R I与 L E A A X,V A R 2M O V A L,L E NG T H V A R I 与 M O V A L,S I Z E V A R IM O V A L,E S:D I C M P A L,S I 与 C M P S BS H R A L,1 与 S A R A L,1S H R A L,1 与 R O R A L,1R O L B X,1 与 R C L B X,15.写出下列转移指令的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁