微机原理与接口技术课后习题答案(详细完全版).
《微机原理与接口技术》课后习题答案
《微机原理与接⼝技术》课后习题答案第⼀章1.在计算机中为什么使⽤⼆进制数存储数据⽽不使⽤⼗进制数存储数据?答:计算机是由⼤量的电⼦器件组成的,在这些电⼦器件中,电路的通和断、电位的⾼和低,⽤两个数字符号“1”和“0”分别表⽰容易实现。
同时⼆进制的运算法则也很简单,因此,在计算机内部通常⽤⼆进制代码来作为内部存储、传输和处理数据。
2.完成下列数制之间的转换。
(1)01011100B=92D (2)0.10110011B=0.41D(3)135D=1111101B (4)99.4375D=1100011.0111B3.组合型BCD码和⾮组合型BCD码有什么区别?写出⼗进制数254的组合型BCD数和⾮组合型BCD数答:1)BCD码是通常的8421码,它⽤4个⼆进制位表⽰⼀个⼗进制位,⼀个字节可以表⽰两个⼗进制位,即00~992)⾮组合BCD码⽤8个⼆进制位表⽰⼀个⼗进制位,实际上只是⽤低4个⼆进制位表⽰⼀个⼗进制位0~9,⾼4位任意,但通常默认为03)254(10)=0010 0101 0100(BCD)254(10)=00100101 00000100(BCD)4.ASCII码的编码⽅法是什么?写出⼗进制数205和字符串A+B=C的ASCII码。
答:1)ASCII码的编码⽅法是使⽤7 位⼆进制数来表⽰所有的⼤写和⼩写字母,数字0 到9、标点符号,以及在美式英语中使⽤的特殊控制字符2)⼗进制205的ASCII码是:011 000 1013)字符串A+B=C的ASCII码是:412B423D435.机器数与真值有什么区别?机器数有哪些特点?答:1)真值是所表⽰的数的⼤⼩,⼀般⽤⼗进制表征。
机器数原码,补码,反码都是机器数⼀种表现形式,或说都属于机器数2)机器数的特点:⼀:数的符号数值化。
实⽤的数据有正数和负数,由于计算机内部的硬件只能表⽰两种物理状态(⽤0和1表⽰),因此实⽤数据的正号“+”或负号“-”,在机器⾥就⽤⼀位⼆进制的0或1来区别。
微机原理及接口技术课后习题及参考答案
第一章课后习题1.1 把下列十进制数转换成二进制数、八进制数、十六进制数。
① 16.25 ② 35.75 ③ 123.875 ④ 97/1281.2 把下列二进制数转换成十进制数。
① 10101.01 ② 11001.0011 ③ 111.01 ④ 1010.11.3 把下列八进制数转换成十进制数和二进制数。
① 756.07 ② 63.73 ③ 35.6 ④ 323.451.4 把下列十六进制数转换成十进制数。
① A7.8 ② 9AD.BD ③ B7C.8D ④ 1EC1.5 求下列带符号十进制数的8位补码。
① +127 ② -1 ③ -0 ④ -1281.6 求下列带符号十进制数的16位补码。
① +355 ② -11.7 计算机分那几类?各有什么特点?1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。
1.9 80X86微处理器有几代?各代的名称是什么?1.10 你知道现在的微型机可以配备哪些外部设备?1.11 微型机的运算速度与CPU的工作频率有关吗?1.12 字长与计算机的什么性能有关?习题一参考答案1.1 ① 16.25D=10000.01B=20.2Q=10.4H② 35.75D=100011.11B=43.6Q=23.CH③ 123.875D=1111011.111B=173.7Q=7B.EH④ 97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H1.2 ① 10101.01B=21.25D ② 11001.0011B=25.1875D③ 111.01B=7.25D ④ 1010.1B=10.5D1.3 ① 756.07Q=111101110.000111B=494.109D ②63.73Q=110011.111011B=51.922D③ 35.6Q=11101.110B=29.75D ④323.45Q=11010011.100101B=211.578D1.4 ① A7.8H=167.5D ② 9AD.BDH=2477.738D③ B7C.8D=2940.551D ④ 1ECH=492D1.5 ① [+127]补=01111111 ② [-1]补= 11111111③ [-0]补=00000000 ④[-128]补=100000001.6 ① [+355]补= 0000000101100011 ② [-1]补= 1111 1111 1111 11111.7 答:传统上分为三类:大型主机、小型机、微型机。
微机原理与接口技术课后习题答案
微机原理与接口技术习题参考答案第一章(p20)1、参考答案:冯•诺伊曼计算机的设计思想(EDVAC方案:存储程序通用电子计算机方案):①计算机分为计算器、控制器、存储器、输入和输出装置五个部分;②计算机内采用二进制;③将程序存储在计算机内,简称“程序存储”。
其中第三点是冯•诺依曼计算机设计的精华,所以人们又把冯•诺依曼原理叫做程序存储原理,即程序由指令组成并和数据一起存放在存储器中,机器则按程序指定的逻辑顺序把指令从存储器中读出来并逐条执行,从而自动完成程序描述的处理工作。
冯•诺伊曼计算机主要以运算器和控制器为中心,结构框图如下图所示。
2、参考答案:微处理器就是中央处理器CPU,是计算机的核心,单独的CPU不能构成计算机系统;微型计算机由微处理器、主存储器、I/O接口(注意:不是I/O设备)组成;而微型计算机系统除了包括微型计算机外,还有系统软件(即操作系统)、应用软件、外存储器和I/O设备等。
微型计算机系统结构如下图所示。
3、答案略,见p6~74、答案略,见图2,或教材图1-35、答案略,见p12~136、参考答案:由于8086微处理器的地址总线的宽度为20位,所以它可寻址220=1M字节的存储空间;而PentiumII微处理器的地址总线的宽度为36位,所以它可寻址236=64G字节的存储空间。
7、参考答案:①PCI(Peripheral Component Interconnect:外围设备互联),是Intel公司1992年发布486微处理器时推出的32/64位标准总线,数据传输速率位132MB/s,适用于Pentium微型计算机。
PCI总线是同步且独立于微处理器的具有即插即用(PNP:Plug and play,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序)的特性.PCI总线允许任何微处理器通过桥接口连接到PCI 总线上。
《微机原理与接口技术》课后习题答案
第一章1.在计算机中为什么使用二进制数存储数据而不使用十进制数存储数据?答:计算机是由大量的电子器件组成的,在这些电子器件中,电路的通和断、电位的高和低,用两个数字符号―1‖和―0‖分别表示容易实现。
同时二进制的运算法则也很简单,因此,在计算机内部通常用二进制代码来作为内部存储、传输和处理数据。
2.完成下列数制之间的转换。
(1)01011100B=92D (2)0.10110011B=0.41D(3)135D=1111101B (4)99.4375D=1100011.0111B3.组合型BCD码和非组合型BCD码有什么区别?写出十进制数254的组合型BCD数和非组合型BCD数答:1)BCD码是通常的8421码,它用4个二进制位表示一个十进制位,一个字节可以表示两个十进制位,即00~992)非组合BCD码用8个二进制位表示一个十进制位,实际上只是用低4个二进制位表示一个十进制位0~9,高4位任意,但通常默认为03)254(10)=0010 0101 0100(BCD)254(10)=00100101 00000100(BCD)4.ASCII码的编码方法是什么?写出十进制数205和字符串A+B=C的ASCII码。
答:1)ASCII码的编码方法是使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符2)十进制205的ASCII码是:011 000 1013)字符串A+B=C的ASCII码是:412B423D435.机器数与真值有什么区别?机器数有哪些特点?答:1)真值是所表示的数的大小,一般用十进制表征。
机器数原码,补码,反码都是机器数一种表现形式,或说都属于机器数2)机器数的特点:一:数的符号数值化。
实用的数据有正数和负数,由于计算机内部的硬件只能表示两种物理状态(用0和1表示),因此实用数据的正号―+‖或负号―-‖,在机器里就用一位二进制的0或1来区别。
《微机原理与接口技术》—习题及参考答案
3.
4. 5.
6.错误!未指定书签。集源自-4-编者:喻其山
7. 8. 9.
8086CPU 工作在最大模式时,S 2 、 S1 、 S 0 在 CPU 访问存储器与 CPU 访问外 部设备时,分别是什么状态? 在 8086 最大模式系统中,8288 总线控制器的作用是什么?它产生哪些控制 信号? FFFFF FFFFE 8086 采用什么方式管理内存?1MB 的内存空 间分为哪两个存储体?它们如何与地址总线、 数据总线相连? 答:(1)、8086 采用分段方式管理内存; (2)、 1MB 的内存空间分为偶地址和奇地址 两个存储体; A19~A1 (3)、如右图所示:
错误!未指定书签。集
-
1
-
编者:喻其山
第1章
1.
微型计算机概述
冯· 诺依曼计算机的结构特点是什么? 答:(1)、由运算器、控制器、存储器、输入设备和输出设备五大部分组成。 (2)、数据和程序以二进制代码形式不加区别地存放在存储器中,存放位 置由地址指定,地址码也为二进制。 (3)、控制器是根据存放在存储器中的指令序列及程序来工作的,并由一 个程序计数器(即指令地址计数器)控制指令的执行。控制器具有 判断能力,能以计算结果为基础,选择不同的动作流程。 微处理器内部一般由哪些部分组成?各部分的主要功能是什么? 典型微机有哪三大总线?它们传送的是什么信息? 答:(1)、有数据总线,地址总线和控制总线。 (2)、数据总线用来传输数据信息,是双向总线; 地址总线用于传送 CPU 发出的地址信息,是单向总线; 控制总线用来传送控制信号、时序信号和状态信息等。 其中有的是 CPU 向内存和外设发出的信息,有的则是内存或外设向 CPU 发出的信息。 可见,CB 中每一根线的方向是一定的、单向的,但 CB 作为一个整体是双 向的。 试用示意图说明内存单元的地址和内存单元的内容,二者有何联系和区别? 答:示意图如右所示: 联系:存储单元中存放着信息,该信 息可以是数据, 也可以是另一单元的地址 的一部分, 每个存储单元都包含着地址和 内容两个部分。都用二进制数表示,地址 为无符号整数,书写格式为 16 进制。 区别: 地址是微机用来管理内存单元 而设置的,相当于内存单元的编号;而内 容是存放在各个内存单元中的二进制信 息。
微机原理与接口技术课后答案
第1章微型计算机系统概述1. 简述微型计算机系统的组成。
2. 简述计算机软件的分类及操作系统的作用。
3. CPU是什么?写出Intel微处理器的家族成员。
4. 写出10条以上常用的DOS操作命令。
[参考答案]1.答:微型计算机系统由硬件和软件两大部分组成,硬件又可细分为主机(由CPU、存储器、控制电路、接口等构成)、输入设备(如键盘)和输出设备(如显示器);软件可细分为系统软件(如操作系统)和应用软件。
3.答CPU(Central Processing Unit中央处理单元)是计算机的核心部件,它包括控制器和算术逻辑运算部件等。
Intel 微处理器的家族成员有:8088/8086、80186、80286、80386、80486、Pentium(80586)、Pentium Ⅱ、Pentium Ⅲ 和Pentium IV。
第2章计算机中的数制和码制1. 将下列十进制数转换成二进制数:(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. 将下列十进制数转换成十六进制数:(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=1011B,b=11001B,c=100110B, 按二进制完成下列运算,并用十进制运算检查计算结果:(1)a+b;(2)c-a-b;(3)a·b;(4)c/b8. 已知a=00111000B, b=11000111B, 计算下列逻辑运算:(1)a AND b;(2)a OR b;(3)a XOR b;(4)NOT a9. 设机器字长为8位,写出下列各数的原码和补码:(1)+1010101B;(2)-1010101B;(3)+1111111B;(4)-1111111B;(5)+1000000B;(6)-1000000B10. 写出下列十进制数的二进制补码表示(设机器字长为8位):(1)15;(2)-1;(3)117;(4)0;(4)-15;(5)127;(6)-128;(7)8011. 设机器字长为8位,先将下列各数表示成二进制补码,然后按补码进行运算,并用十进制数运算进行检验:(1)87-73;(2)87+(-73);(3)87-(-73);(4)(-87)+73;(5)(-87)-73;(6)(-87)-(-73);12. 已知a,b,c,d为二进制补码:a=00110010B, b=01001010B, c=11101001B, d=10111010B, 计算:(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位二进制补码表示的十六进制数,计算a+b和a-b,并判断其结果是否溢出:(1)a=37H, b=57H; (2)a=0B7H, b=0D7H;(3)a=0F7H, b=0D7H; (4)a=37H, b=0C7H14. 求下列组合BCD数的二进制和十六进制表示形式:(1)3251(2)12907(3)ABCD(4)abcd15. 将下列算式中的十进制数表示成组合BCD码进行运算,并用加6/减6修正其结果:(1)38+42;(2)56+77;(3)99+88;(4)34+69;(5)38-42;(6)77-56;(7)15-76;(8)89-2316. 将下列字符串表示成相应的ASCII码(用十六进制数表示):(1)Example 1;(2)Jinan University;(3)-108.652;(4)How are you?;(5)Computer(6)Internet Web17. 将下列字符串表示成相应的ASCII码(用十六进制数表示):(1)Hello(2)123<CR>456;(注:<CR>表示回车)(3)ASCII;(4)The number is 2315[参考答案]1.解:(1)49=0011 0001B (2)73.8125=0100 1001.1101B(3)79.75=0100 1111.11B3. 解:(1)FAH=1111 1010B=250D (2)5BH=0101 1011B=91D(3)78A1H=0111 1000 1010 0001B=30881D(4)FFFFH=1111 1111 1111 1111B=65535D5. 解:(1)10110.101B=22.625 (2)10010010.001B=146.0625(3)11010.1101B=26.81257. 解:a=1011B=11, b=11001B=25, c=100110B=38(1)a+b=100100B=36 (2)c-a-b=10B=2(3)a·b=100010011B=275 (4)c/b=1……1101B(=13)9. 解:(1)+1010101B 原码01010101B 补码01010101B(2)-1010101B 原码11010101B 补码10101011B(3)+1111111B 原码01111111B 补码01111111B(4)-1111111B 原码11111111B 补码10000001B(5)+1000000B 原码 01000000B 补码01000000B(6)-1000000B 原码 11000000B 补码11000000B11. 解:按补码表示+87=0101 0111B;+73=0100 1001B;-87=1010 1001B;-73=1011 0111B(1)87-73=0101 0111B-0100 1001B=1110B=14(2)87+(-73)=0101 0111B+1011 0111B=[1]0000 1110B=14(舍去进位)(3)87-(-73)=0101 0111B-1011 0111B=[-1]1010 0000B=-96(溢出)(4)(-87)+73=1010 1001B+0100 1001B=1111 0010B=-14(5)(-87)-73=1010 1001B-0100 1001B=[-1]0110 0000B=96(溢出)(6)(-87)-(-73)=1010 1001B-1011 0111B=1111 0010B=-1413. 解:(1)a=37H, b=57H; a+b=8EH; a-b=[-1]E0H=-32(2)a=0B7H, b=0D7H; a+b=[1]8EH=-114; a-b=[-1]E0H=-32(3)a=0F7H, b=0D7H; a+b=[1]CEH=-50; a-b=20H=32(4)a=37H, b=0C7H; a+b=FEH=-2; a-b=[-1]70H=11215. 解:(1)将38、42表示成组合BCD码:38H、42H,然后按二进制进行运算,并根据运算过程中的AF,CF进行加6/减6修正。
微机原理与接口技术课后习题答案完整版
习题11.什么是汇编语言,汇编程序,和机器语言?答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。
汇编语言是面向及其的程序设计语言。
在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。
这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。
2.微型计算机系统有哪些特点?具有这些特点的根本原因是什么?答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。
这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上。
3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。
答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。
“存储程序控制”的概念可简要地概括为以下几点:①计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基本部件组成。
②在计算机内部采用二进制来表示程序和数据。
③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。
④五大部件以运算器为中心进行组织。
4.请说明微型计算机系统的工作过程。
答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。
如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。
5.试说明微处理器字长的意义。
答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。
它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。
《微机原理与接口技术》参考答案完整版
《微机原理与接口技术》习题参考答案习题21.为何说8086CPU是16位CPU?答:16位指的是8086CPU的字长,而字长一般来说和运算器、寄存器、总线宽度一致。
因为8086CPU的内部寄存器、内部运算部件以及内部操作都是按16位设计的,这决定了它的字长为16位。
2.8086CPU由哪两个单元组成?其中,指令队列在哪个单元中,有何作用?答:总线接口单元(Bus Interface Unit,BIU)和执行单元(Execution Unit,EU)。
指令队列在BIU中。
它的作用是当EU在执行指令时,空闲的BIU可以从内存读取后续指令到指令队列,这样就可以将取指令工作和执行指令工作重叠进行,从而提高CPU的工作效率,加快指令的执行速度。
3.8086CPU中8位寄存器和16位寄存器是什么关系?答:8086的通用寄存器包括数据寄存器、指针寄存器和变址寄存器。
其中数据寄存器包含AX、BX、CX、DX四个16位寄存器,但他们每个都可以分开作为两个单独的8位寄存器使用。
8086的指针寄存器和变址寄存器不可分割为8位寄存器。
4.8086CPU中的IP寄存器有何用途?答:IP寄存器是指令指针寄存器,用来存放下一条要执行的指令在代码段中的偏移地址。
在程序运行过程中,IP寄存器始终指向下一条指令的首地址,与CS寄存器联合确定下一条指令的物理地址。
8086就是通过IP寄存器来控制指令序列的执行流程。
5.在标志寄存器中,用于反映运算结果属性的标志位有哪些?它们每一位所表示的含义是什么?答:有CF、PF、AF、ZF、SF、OF。
它们的含义如下:CF:进位标志。
它记录运算时从最高有效位产生的进位值或结果值。
最高有效位有进位或有借位时CF=1,否则CF=0。
PF:奇偶标志。
它记录运算结果的奇偶检验条件。
当结果操作数中“1”的个数为偶数时PF=1,否则PF=0。
AF:辅助进位标志。
在字节运算时,由低半字节(字节的低4位)向高半字节有进位或借位时,AF=1,否则AF=0。
微机原理与接口技术-习题参考答案
第1章习题答案1.答:计算机硬件的基本组成部分有:运算器、控制器、存储器、输入设备和输出设备五大组成部分;运算器功能:完成各种算术运算或逻辑运算;控制器功能:发出各种控制信息,使计算机各部件协调工作;存储器功能:存储程序和数据;输入设备:将程序和数据输入的部件;输出设备:将结果数据输出的部件。
2.答:以微型计算机为核心,配以鼠标、键盘等外围设备、电源、接口电路,以及控制计算机工作的软件构成微型计算机系统。
3.答:主板与外部设备之间的数据传输必须通过系统总线,所以系统总线包含的信号线必须满足下列各种输入/输出操作的需要:①访问分布于主板之外的存储器;②访问I/O接口;③适应外部中断方式;④适应存储器直接与外部设备交换信息。
总线控制逻辑的任务就是产生和接受这些操作所需要的信号。
4.答:计算机有运算器、控制器、存储器、输入设备和输出设备五大部分组成,计算机内部采用二进制数据的格式表示数据和指令。
程序将事先保存在内存储器中,计算机在工作时,不需要操作人员干预,自动逐条取出指令并执行。
5.答:CPU首先执行主板上BIOS中的自检程序;执行引导装入程序,依次搜寻硬盘、光盘等;读出引导记录,装入引导程序;由引导程序将操作系统装入内存;执行操作系统。
6.答:BIOS是Basic Input Output System的缩写,指的是基本输入输出系统"。
它是一组固化到计算机ROM芯片上的程序,保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。
7.答:略。
2第3章习题答案1.(1)答:物理地址:物理地址(PA)是20位无符号二进制数,是CPU访问存储器的实际地址。
每个存储单元对应一个物理地址。
8086存储空间的物理地址范围是:00000H~FFFFFH。
逻辑地址:采用分段结构的存储器中,把通过段地址和偏移地址来表示的存储单元的地址称为逻辑地址,记为:段地址:偏移地址。
段地址:8086规定各逻辑段从节的整数边界开始,即段首地址二进制值的低4位是0000,把段首地址的高16位称为段基址或段地址。
(完整word版)微机原理和接口技术课后习题和参考答案解析
第一章课后习题1.1 把下列十进制数转换成二进制数、八进制数、十六进制数。
① 16。
25 ② 35.75 ③ 123。
875 ④ 97/1281.2 把下列二进制数转换成十进制数。
① 10101.01 ② 11001。
0011 ③ 111。
01 ④ 1010.11。
3 把下列八进制数转换成十进制数和二进制数。
① 756.07 ② 63。
73 ③ 35.6 ④ 323。
451.4 把下列十六进制数转换成十进制数。
① A7。
8 ② 9AD.BD ③ B7C。
8D ④ 1EC1。
5 求下列带符号十进制数的8位补码。
① +127 ② -1 ③ -0 ④ -1281.6 求下列带符号十进制数的16位补码。
① +355 ② -11.7 计算机分那几类?各有什么特点?1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。
1。
9 80X86微处理器有几代?各代的名称是什么?1。
10 你知道现在的微型机可以配备哪些外部设备?1。
11 微型机的运算速度与CPU的工作频率有关吗?1。
12 字长与计算机的什么性能有关?习题一参考答案1.1 ① 16。
25D=10000。
01B=20.2Q=10.4H② 35.75D=100011。
11B=43.6Q=23.CH③ 123。
875D=1111011。
111B=173.7Q=7B。
EH④ 97/128D=64/123+32/128+1/128=0。
1100001B=0。
604Q=0。
C2H1.2 ① 10101.01B=21.25D ② 11001.0011B=25。
1875D③ 111。
01B=7。
25D ④ 1010。
1B=10。
5D1。
3 ① 756.07Q=111101110.000111B=494.109D ② 63。
73Q=110011.111011B=51。
922D③ 35。
6Q=11101.110B=29。
75D ④ 323.45Q=11010011。
微机原理与接口技术课后习题答案
2-2 段寄存器 CS = 1200H,指令指针寄存器 IP = FF00H,此时指令的物理地址为多少? 指向这一物理地址的 CS 值和 IP 值是惟一的吗?
【解】 指令的物理地址 = 12000H + FF00H = 2lF00H
物理地址是 CPU 存取存储器所用的地址。逻辑地址是段和偏移形式的地址,即汇编语言程序中使用的存储器地址。物理地址可以对应于不同的逻辑地址,指向这一物理地址的 CS 值和 IP 值不是惟一的
端口A可工作于方式0,方式1,方式2;端口B可工作于方式0,方式1;端口C只可工作于方式0。
8-19 串行通讯与并行通讯的主要区别是什么?各有什么特点?
串行通信是在单条1位宽的导线上将二进制数的各位一位一位地按顺序分时传送。用于通信的线路少,因而在远距离通信时可以极大地降低成本,串行通信适合于远距离数据传送,也常用于速度要求不高的近距离数据传送。
第四章
4.4 4.7
第五章
5.4(什么是存储器访问的局部性?研究和讨论这一现象有什么意义?) 5.6(存储器体系为什么采用分级结构?主要用于解决存储器中存在的哪些问题?)没有整理答案啊......!
第六章
6.1(cpu与外设之间数据传输控制方式有哪几种?何为程序控制?他有哪两种基本方式?) 6.4(什么是接口?什么是端口?在8086|8088微机系统中,cpu如何实现端口寻址的?)
(5)MOV CX,LENGTH TABLEB ;(CX)=1]
7-1 什么是中断?简述一个中断的全过程。
解:所谓中断,是指在CPU执行程序的过程中,由于某些紧急事件发生,向CPU 提出申请,CPU停止当前正在执行的程序,转去执行处理紧急事件的程序,待处理完紧急事件后,再返回接着执行刚才被停止执行的原程序。
微机原理与接口技术课后习题有答案
第一章解:五代,详细见书解:微型计算机:以大规模、超大规模集成电路为主要部件,以集成了计算机主要部件——控制器和运算器的微处理器为核心,所构造出的计算机系统 ;PC机:PCPersonal Computer机就是面向个人单独使用的一类微机 ;单片机:用于控制的微处理器芯片,内部除CPU外还集成了计算机的其他一些主要部件,如:ROM、RAM、定时器、并行接口、串行接口,有的芯片还集成了A/D、D/A转换电路等;数字信号处理器DSP:主要面向大流量数字信号的实时处理,在宿主系统中充当数据处理中心,在网络通信、多媒体应用等领域正得到越来越多的应用解:微机主要有存储器、I/O设备和I/O接口、CPU、系统总线、操作系统和应用软件组成,各部分功能如下:CPU:统一协调和控制系统中的各个部件系统总线:传送信息存储器:存放程序和数据I/O设备:实现微机的输入输出功能I/O接口:I/O设备与CPU的桥梁操作系统:管理系统所有的软硬件资源解:系统总线:传递信息的一组公用导线,CPU通过它们与存储器和I/O设备进行信息交换 ;好处:组态灵活、扩展方便三组信号线:数据总线、地址总线和控制总线 ;其使用特点是:在某一时刻,只能由一个总线主控设备来控制系统总线,只能有一个发送者向总线发送信号;但可以有多个设备从总线上同时获得信号;解:1用于数值计算、数据处理及信息管理方向;采用通用微机,要求有较快的工作速度、较高的运算精度、较大的内存容量和较完备的输入输出设备,为用户提供方便友好的操作界面和简便快捷的维护、扩充手段;2用于过程控制及嵌人应用方向;采用控制类微机,要求能抵抗各种干扰、适应现场的恶劣环境、确保长时间稳定地工作,要求其实时性要好、强调其体积要小、便携式应用强调其省电;解:解:I/O通道:位于CPU和设备控制器之间,其目的是承担一些原来由CPU处理的I/O任务,从而把CPU 从繁杂的I/O任务中解脱出来;由10根信号线组成A9-A0;解:BIOS:基本输入输出系统;主要功能:用来驱动和管理诸如键盘、显示器、打印机、磁盘、时钟、串行通信接口等基本的输入输出设备解:基本RAM区:640KB保留RAM区:128KB扩展ROM区:128KB基本ROM区:128KB解:1、数—用来直接表征量的大小,包括:定点数、浮点数;2、码—用来指代某个事物或事物的某种状态属性,包括:二进制、八进制、十进制、十六进制;区别:使用场合不同,详见P16.解:123解:原码反码补码+37 00100101/25H 00100101/25H 00100101/25H解:解:无符号数:70D补码有符号数:70DBCD码:46DASCII:F解:1、相加后若出现和大于9,则将和减去10后再向高位进12、若出现组间进位,则将低位加6解:详见课本16页;解:C3 40 20 00D:44Hd:64HCR:0DHLF:0AH0:30HSP:20HNUL:00H解:国标码:36 50H机内码:B6 B0H第3章解:1完整的汇编语言源程序由段组成2一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列3需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点4所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内5通常,程序还需要一个堆栈段开始位置:用标号指明返回DOS:利用DOS功能调用的4CH子功能来实现汇编停止:执行到一条END伪指令时,停止汇编解:段定位、段组合和段类型;解:stack segment stackdb 10240stack endsdata segmentstring db 'Hello,Assembly',0dH,0aH,‘$’data endscode segment 'code'assume cs:code,ds:data,ss:stackstart: mov dx,offset stringmov ah,9int 21hcode endsend start解:1. EXE程序程序可以有多个代码段和多个数据段,程序长度可以超过64KB通常生成EXE结构的可执行程序2. COM程序只有一个逻辑段,程序长度不超过64KB需要满足一定条件才能生成COM结构的可执行程序MASM 需要采用TINY模式解:符号定义伪指令有“等价EQU”和“等号=”:符号名 EQU 数值表达式符号名 EQU <字符串>符号名=数值表达式EQU用于数值等价时不能重复定义符号名,但“=”允许有重复赋值;例如:X= 7 ;等效于:X equ 7X= X+5 ;“X EQU X+5”是错误的解:1 al=67h2 ax=133h,dx=4h3 ax=0230h4 al=41h4 ax=7654h解:my1b db 'Personal Computer'my2b db 20my3b db 14hmy4b db 00010100bmy5w dw 20 dupmy6c = 100my7c = <'Personal Computer'>解:利用定位伪指令控制,如org,even,align解:包括逻辑地址和类型两种属性;解:;数据段org 100hvarw dw 1234h , 5678hvarb db 3 , 4buff dd 10 dupmess db 'Hello';代码段mov ax , offset varb + offset messmov ax , type buff + type mess + type vard mov ax , sizeof varw+ sizeof buff+ sizeof messmov ax , lengthof varw+ lengthof vard解:1 1000超过一个字节所能表达的最大整数2SI应为偶数3两个内存单元不能直接运算4应改为al+15条件转移指令后面应接标号,而不是变量解:mov ah,1 ;只允许输入小写字母int 21hsub al,20h ;转换为大写字母mov dl,almov ah,2int 21h ;显示解:mov bx,offset LEDtablemov al,lednumxlat解:mov ax, bufXcmp ax, bufYjae donemov ax, bufYdone: mov bufZ, ax解:.model small.stack.databufX dw -7signX db.code.startupcmp bufX,0 ;test bufX,80hjl next ;jnz nextmov signX,0jmp donenext: mov signX,-1done: .exit 0end解:mov dl,’2’mov ax,bufXcmp ax,bufYje next1dec dlnext1: cmp ax,bufZje next2dec dlnext2: mov ah,2int 21h解:;代码段mov al,numbermov bx,0 ;BX←记录为1的位数restart: cmp al,0 ;AL=0结束jz doneagain: shr al,1 ;最低位右移进入CFjc next ;为1,转移inc bx ;不为1,继续jmp againnext: push axpush bxshl bx,1 ;位数乘以2偏移地址要用2个字节单元jmp addrsbx ;间接转移:IP←table+BX;以下是各个处理程序段fun0: mov dl,'0'jmp dispfun1: mov dl,'1'jmp dispfun2: mov dl,'2'jmp dispfun3: mov dl,'3'jmp dispfun4: mov dl,'4'jmp dispfun5: mov dl,'5'jmp dispfun6: mov dl,'6'jmp dispfun7: mov dl,'7'jmp disp;disp: mov ah,2 ;显示一个字符int 21hpop bxpop axjmp restartdone: …编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中不考虑溢出和进位;;.model small.stack.datab_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数sum db ;预留结果单元.code.startupxor si, si ;位移量清零xor al, al ;取第一个数mov cx, num ;累加次数again: add al, b_datasi ;累加inc si ;指向下一个数loop again ;如未完,继续累加mov sum, al ;完了,存结果.exit 0end求主存0040h:0开始的一个64KB物理段中共有多少个空格;.model small.codestart: mov ax,0040h ;送段地址mov ds, axmov si, 0 ;偏移地址mov cx, si ;计数循环次数xor ax, ax ;空格计数器清零again: cmp byte ptr si, 20h ;与空格的ASCII码比较jne next ;不是空格,转inc ax ;是空格,空格数加1next: inc si ;修改地址指针loop again ;cx=cx-1,如cx=0 退出循环.exit 0end start编写计算100个16位正整数之和的程序;如果和不超过16位字的范围65535,则保存其和到wordsum,如超过则显示‘overflow’;答:;数据段count equ 100parray dw count dup ;假设有100个数据wordsum dw 0msg db ‘overflow’,’$’;代码段mov cx,countmov ax,0mov bx,offset parrayagain: add ax,bxjnc nextmov dx,offset msgmov ah,9int 21h ;显示溢出信息jmp done ;然后,跳出循环体next: add bx,2loop againmov wordsum,axdone: …编程把—个16位无符号二进制数转换成为用8421BCD码表示的5位十进制数;转换算法可以是:用二进制数除以10000,商为“万位”,再用余数除以1000,得到“千位”;依次用余数除以l00、10和l,得到“百位”、“十位”和“个位”; ;.model small.stack 256.dataarray dw ;源字数据dbcd db 5 dup ;五位bcd结果,高对高低对低.code.startupmov dx, array ;取源数据余数mov bx, 10000 ;除数mov cx, 10 ;除数系数mov si, 4 ;目的数据高位位移量again: mov ax, dx ;中存放被除数mov dx, 0div bx ;除于bx,商ax,余数dxmov dbcdsi, al ;商<10,存结果push dx ;暂存余数mov ax, bx ;除数除于10mov dx,0div cx ;除于cx,商ax、余数0存在dxmov bx, ax ;bx是除数pop dxdec si ;目的数据位移量减1jnz againmov dbcd, dl ;存个位数 < 10.exit 0end解:1汇编语言中,子程序要用一对过程伪指令PROC和ENDP声明,格式如下:过程名PROC NEAR|FAR……;过程体过程名ENDP2保护用到的寄存器内容,以便子程序返回时进行相应的恢复;3改错:crazy procpish bxpush cxxor ax,axxor dx,dxagain:add a,bxadc dx,0inc bxinc bxloop againpop cxpop bx解不需调用HTOASC子程序:again: mov ah,1int 21hcmp al,1bh ;ESC的ASCII码是1bhje donemov dl,almov ah,2int 21h ;是大写字母则转换为小写字母jmp againdone: …解答:asctob procpush cxand dh,0fh ;先转换十位数shl dh,1 ;十位数乘以10采用移位指令mov ch,dhshl dh,1shl dh,1add dh,chand dl,0fh ;转换个位数add dh,dl ;十位数加个位数mov al,dh ;设置出口参数pop cxretasctob endp解:DIPASC proc ;入口参数:AL=要显示的一个16进制数push cxpush dxpush axmov cl,4 ;转换高位shr al,clcall HTOASCmov dl,al ;显示mov ah,2int 21hpop ax ;转换低位call HTOASCmov dl,al ;显示mov ah,2int 21hmov dl,’H’;显示一个字母“H”mov ah,2int 21hpop dxpop cxretDIPASC endpHTOASC proc ;将AL低4位表达的一位16进制数转换为ASCII码and al,0fhcmp al,9jbe htoasc1add al,37h ;是0AH~0FH,加37H转换为ASCII码ret ;子程序返回htoasc1: add al,30h ;是0~9,加30H转换为ASCII码ret ;子程序返回HTOASC endp解:lucase procpush bxmov bx,offset stringcmp al,0je case0cmp al,1jz case1cmp al,2jz case2jmp donecase0: cmp byte ptr bx,0je donecmp byte ptr bx,’A’jb next0cmp byte ptr bx,’Z’ja next0add byte ptr bx,20hnext0: inc bxjmp case0case1: cmp byte ptr bx,0je donecmp byte ptr bx,’a’jb next1cmp byte ptr bx,’z’ja next1sub byte ptr bx,20hnext1: inc bxjmp case1case2: cmp byte ptr bx,0je donecmp byte ptr bx,’A’jb next2cmp byte ptr bx,’Z’ja next20add byte ptr bx,20hjmp next2next20: cmp byte ptr bx,’a’jb next2cmp byte ptr bx,’z’ja next2sub byte ptr bx,20hnext2: inc bxjmp case2done: pop bxretlucase endp解:1用寄存器传递参数:最简单和常用的参数传递方法是通过寄存器,只要把参数存于约定的寄存器中就可以了由于通用寄存器个数有限,这种方法对少量数据可以直接传递数值,而对大量数据只能传递地址采用寄存器传递参数,注意带有出口参数的寄存器不能保护和恢复,带有入口参数的寄存器可以保护、也可以不保护,但最好能够保持一致2用共享变量传递参数子程序和主程序使用同一个变量名存取数据就是利用共享变量全局变量进行参数传递如果变量定义和使用不在同一个源程序中,需要利用PUBLIC、EXTREN声明如果主程序还要利用原来的变量值,则需要保护和恢复利用共享变量传递参数,子程序的通用性较差,但特别适合在多个程序段间、尤其在不同的程序模块间传递数据3用堆栈传递参数参数传递还可以通过堆栈这个临时存储区;主程序将入口参数压入堆栈,子程序从堆栈中取出参数;子程序将出口参数压入堆栈,主程序弹出堆栈取得它们采用堆栈传递参数是程式化的,它是编译程序处理参数传递、以及汇编语言与高级语言混合编程时的常规方法解:方法:主程序将入口参数压入堆栈,子程序从堆栈中取出参数;子程序将出口参数压入堆栈,主程序弹出堆栈取得它们注意:压栈与弹栈必须要一一对应;解:方法1:neg32 proc ;入口参数:=32位有符号数neg ax ;实现0-功能neg dxsbb dx,0 ;这条指令也可以用dec dx代替retneg32 endp ;出口参数:=32位有符号数的补码方法2:neg32 proc ;入口参数:=32位有符号数not ax ;实现求反加1not dxadd ax,1adc dx,0retneg32 endp ;出口参数:=32位有符号数的补码解:;数据段array db 12h,25h,0f0h,0a3h,3,68h,71h,0cah,0ffh,90h ;数组count equ $-array ;数组元素个数result db ;校验和;代码段mov bx,offset array ;BX←数组的偏移地址mov cx,count ;CX←数组的元素个数call checksum ;调用求和过程mov result,al ;处理出口参数mov ax,4c00hint 21h;计算字节校验和的通用过程;入口参数:DS:BX=数组的段地址:偏移地址,CX=元素个数;出口参数:AL=校验和;说明:除AX/BX/CX外,不影响其他寄存器checksum procxor al,al ;累加器清0sum: add al,bx ;求和inc bx ;指向下一个字节loop sumretchecksum endpend解:⑴.model small.stack.datawdata dw 34abh.code.startupmov ax,wdatacall dispa.exit 0;dispa procpush cxpush dxmov cl,4mov dl,ahshr dl,clcall dldispmov dl,ahand dl,0fhcall dldispmov dl,alshr dl,clcall dldispmov dl,aland dl,0fhcall dldisppop dxpop cxretdispa endp;dldisp procpush axor dl,30hcmp dl,39hjbe dldisp1add dl,7dldisp1: mov ah,2int 21hpop axretdldisp endpend⑵.model small.stack.datawdata dw 34abhwordtemp dw.code.startupmov ax,wdatamov wordtemp,axcall dispa.exit 0;dispa procpush cxpush dxmov cl,4mov dl,byte ptr wordtemp+1shr dl,clcall dldispmov dl,byte ptr wordtemp+1and dl,0fhcall dldispmov dl,byte ptr wordtempshr dl,clcall dldispmov dl,byte ptr wordtempand dl,0fhcall dldisppop dxpop cxretdispa endp;dldisp procpush axor dl,30hcmp dl,39hjbe dldisp1add dl,7dldisp1: mov ah,2int 21hpop axretdldisp endpend⑶.model small.stack.datawdata dw 34abh.code.startuppush wdatacall dispapop ax ;add sp,2.exit 0;dispa procpush bpmov bp,sppush axpush cxpush dxmov ax,bp+4mov cl,4mov dl,ahshr dl,clcall dldispmov dl,ahand dl,0fhcall dldispmov dl,alshr dl,clcall dldispmov dl,aland dl,0fhcall dldisppop dxpop cxpop axpop bpretdispa endp;dldisp procpush axor dl,30hcmp dl,39hjbe dldisp1add dl,7dldisp1: mov ah,2int 21hpop axretdldisp endpend解:如果利用共享变量传递函数,且变量定义和使用不在同一个源程序中,需要利用PUBLIC、EXTERN 声明;解:1宏定义由一对宏汇编伪指令MACRO和ENDM来完成,格式如下:宏名MACRO 形参表……;宏定义体ENDM宏定义之后就可以使用它,即宏调用:宏名实参表2宏调用的格式同一般指令一样:在使用宏指令的位置写下宏名,后跟实体参数;如果有多个参数,应按形参顺序填入实参,也用逗号分隔3宏展开:在汇编时,宏指令被汇编程序用对应的代码序列替代,这就是宏展开宏展开的具体过程是:当汇编程序扫描源程序遇到已有定义的宏调用时,即用相应的宏定义体完全替代源程序的宏指令,同时用位置匹配的实参对形参进行取代解:宏调用的参数通过形参、实参结合实现传递,简捷直观、灵活多变;宏汇编的一大特色是它的参数;宏定义时既可以无参数,也可以有一个或多个参数;宏调用时实参的形式也非常灵活,可以是常数、变量、存储单元、指令操作码或它们的一部分,也可以是表达式;只要宏展开后符合汇编语言的语法规则即可;解:宏:仅是源程序级的简化:宏调用在汇编时进行程序语句的展开,不需要返回;不减小目标程序,执行速度没有改变通过形参、实参结合实现参数传递,简捷直观、灵活多变子程序:还是目标程序级的简化:子程序调用在执行时由CALL指令转向、RET指令返回;形成的目标代码较短,执行速度减慢需要利用寄存器、存储单元或堆栈等传递参数选择:宏与子程序具有各自的特点,程序员应该根据具体问题选择使用那种方法;通常,当程序段较短或要求较快执行时,应选用宏;当程序段较长或为减小目标代码时,要选用子程序编写一个宏指令move doprnd,soprnd,它实现任意寻址方式的字量源操作数soprnd送到目的操作数doprnd,包括存储单元到存储单元的传送功能;答:move macro doprnd,soprndmov ax,soprndmov doprnd,axendm定义一个宏logical,用它代表4条逻辑运算指令:and/or/xor/test;注意需要利用3个形式参数,并给出一个宏调用以及对应宏展开的例子;答:logical macro lcode,dopd,sopdlcode dopd,sopdendm例如,如果使用“and ax,bx”指令,可以利用该宏定义,写出宏指令如下:logical and,ax,bx解:utol macrolocal nextcmp al,’A’;小于“A”不转换jb nextcmp al,’Z’;大于“A”不转换ja nextadd al,20h ;是大写字母则转换为小写字母next:endm定义一个宏movestr strn,dstr,sstr,它将strn个字符从一个字符区sstr传送到另一个字符区dstr解:假设它们都在数据段movestr macro strn,dstr,sstrmov cx,dsmov es,cxmov cx,strnmov di,offset dstrmov si,offset sstrcldrep movsb ;;重复传送ES:DI←DS:SIendm第五章解:主存的作用:保存正在使用的、处于活动状态的程序和数据;辅存的作用:长期保存程序文件和数据文件,在需要时将这些文件调入RAM内存并激活使用;cache的作用:提高对存储器的访问速度;虚拟存储:由容量较小的主存和容量较大的辅存构成,其目标是扩大程序员眼中的主存容量;区别:通过存储器访问指令用户可对主存进行随机访问;用户利用操作系统提供的用户命令和功能调用对辅存进行访问;在半导体存储器中,RAM指的是随机存取存储器 ,他可读可写,但断电后信息一般会丢失;而ROM指的是只读存储器 ,正常工作时只能从中读取信息,但断电后信息不会丢失 ;以EPROM芯片2764为例,其存储容量为8K×8位,共有 8 条数据线和 13 条地址线;用它组成64KB的ROM存储区共需 8 片2764芯片; 解:双译码方式使得地址译码器的输出线的数目大为减少,使得芯片设计得时候复杂度就低了;地址线A9~A4根数据线I/O4~I/O1片选CS读写WE解:假想的RAM有12根地址线、4根数据线片选端CS或CE:有效时,可以对该芯片进行读写操作,通过对系统高位地址线的译码来选中各个存储芯片输出OE:控制读操作;有效时,芯片内数据输出,该控制端对应系统的读控制线MEMRMRDC写WE:控制写操作;有效时,数据进入芯片中,该控制端对应系统的写控制线MEMWMWTC解:位片结构:每个存储单元具有一个唯一的地址,可存储1位;4116字片结构:每个存储单元具有一个唯一的地址,可存储多位;2114解:组成单元速度集成度应用SRAM 触发器快低小容量系统DRAM 极间电容慢高大容量系统NVRAM 带微型电池慢低小容量非易失掩膜ROM:信息制作在芯片中,不可更改PROM:允许一次编程,此后不可更改EPROM:用紫外光擦除,擦除后可编程;并允许用户多次擦除和编程EEPROME2PROM:采用加电方法在线进行擦除和编程,也可多次擦写Flash Memory闪存:能够快速擦写的EEPROM,但只能按块Block擦除解:位扩充——存储器芯片数据位数小于主机数据线数时,利用多个存储器芯片在数据“位”方向的扩充;地址扩充字扩充——当一个存储器芯片不能满足系统存储容量时,利用多个存储器芯片在“地址”方向的扩充组成32KB存储空间,用SRAM 21141K×4需要64个芯片;组成32KB存储空间,用DRAM 411616K×1需要16个芯片;它们都需要进行位扩充和地址扩充解:片选信号说明该存储器芯片是否被选中正常工作,设置它可以比较方便地实现多个存储器芯片组成大容量的存储空间存储器片选信号通常与CPU地址总线的高位地址线相关联,可以采用“全译码”、“部分译码”、“线选译码”方式采用全译码方式可以避免地址重复采用部分或线选译码可以节省译码硬件解:24=16解:解:解:解:解:动态随机存取存储器 DRAM 的存储单元电路动态存储单元是由 MOS 管的栅极电容 C 和门控管组成的;数据以电荷的形式存储在栅极电容上,电容上的电压高表示存储数据 1 ;电容没有储存电荷,电压为 0 ,表明存储数据 0 ;因存在漏电,使电容存储的信息不能长久保持,为防止信息丢失,就必须定时地给电容补充电荷,这种操作称为“ 刷新” 由于要不断地刷新,所以称为动态存储;方法:采用“仅行地址有效”方法刷新;刷新周期:15μs刷新次数:128解:4 256KB A19-A16 4解:访问的局部性原理:在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内;指令地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次;因此,对这些地址的访问就自然地具有时间上集中分布的倾向;数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中;这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性;cache的作用:提高对存储器的访问速度;虚拟存储:其目标是扩大程序员眼中的主存容量;第七章解:总线:指可以由多个信息处理单元所共享的信息通道;使用特点:⑴在某一时刻,只能由一个主设备控制总线,其他主设备此时可作为从设备出现⑵在某一时刻,只能有一个设备向总线上发送数据,但可以有多个设备从总线上接收数据在各种微机总线中,根据总线连接对象的不同可将它们分为以下几类,它们是:片内总线、芯片总线、板级总线、设备总线和互连总线_;例如,ISA总线属于板级总线,USB总线属于设备总线,I2C总线属于芯片总线;总线中除电源和地线外的信号线,也可按传输信息的不同分为以下3类,即:数据总线、地址总线、控制总线 ;解:分时复用就是一个引脚在不同的时刻具有两个甚至多个作用总线复用的目的是为了减少对外引脚个数在访问存储器或外设的总线操作周期中,这些引脚在第一个时钟周期输出存储器或I/O端口的低8位地址A7 ~ A0,其他时间用于传送8位数据D7 ~ D0 解:并行总线:多维数据通过多根信号线同时进行传递;并行同步传输、并行异步传输见P174;解:见P174.解:总线的性能指标包括:总线宽度、标准传输、时钟同步/异步、总线复用、信号线数、总线控制方式总线宽度:它是指数据总线的根数, 用bit位表示,如8位、16位、32位、64位;解:D0~D7:8位双向数据总线A0~A19:20位输出地址总线ALE:地址锁存允许,每个CPU 总线周期有效IOR:I/O读,输出IOW:I/O写,输出IO CH RDY:I/O通道准备好,输入第九章解:软件延时、不可编程的硬件定时、可编程的硬件定时解:CLK时钟输入信号——在计数过程中,此引脚上每输入一个时钟信号下降沿,计数器的计数值减1GATE门控输入信号——控制计数器工作,可分成电平控制和上升沿控制两种类型OUT计数器输出信号——当一次计数过程结束计数值减为0,OUT引脚上将产生一个输出信号解:8253每个通道有 6 种工作方式可供选择;若设定某通道为方式0后,其输出引脚为低电平;当写入计数初值并进入减1计数器后通道开始计数, CLK 信号端每来一个脉冲减1计数器就减1;当计数器减为0 ,则输出引脚输出高电平,表示计数结束;8253的CLK0接的时钟,欲使OUT0产生频率为300KHz的方波信号,则8253的计数值应为 5=÷300KHz ,应选用的工作方式是 3解:1 mov al,50hmov dx,207hout dx,almov al,128 ;80hmov dx,205hout dx,al2 mov al,33hmov dx,207hout dx,almov ax,3000h ;不是3000mov dx,204hout dx,almov al,ahout dx,al3 mov al,0b4hmov dx,207hout dx,almov al,02f0hmov dx,206hout dx,almov al,ahout dx,al解:mov al,33hout 0fbh,al ;写入计数器0地址:0fbhmov al,80h ;out 0f8h,al ;写入低字节计数初值mov al,50hout 0f8h,al ;写入高字节计数初值作用:计数器0的计数初值为5080h解计数器0——每隔55ms产生一个IRQ0中断请求计数器1——每隔15μs产生一个DRAM刷新请求计数器2——控制扬声器音调解101个下降沿,还可以采用方式4GATE0接外部启动计数器的控制信号,可以选用方式1或方式5 mov dx,203hmov al,12h ;方式5为1ahout dx,almov dx,200hmov al,64hout dx,al解:计数器0的计数值:5M/1K=5000=1388H方式控制字:00100101=25H、2DH、35H、3DH十进制计数00100100=24H、2CH、34H、3CH二进制计数计数器1的计数值:1000方式控制字:01101001=69H、79H十进制计数 01101000=68H、78H二进制计数MOV DX,0FFF3HMOV AL,25H ;通道0,只写高字节,方式2,十进制OUT DX,ALMOV DX, 0FFF0HMOV AL,50H ;计数初值5000OUT DX,ALMOV DX,0FFF3HMOV AL,69H ;通道1,方式4OUT DX,ALMOV DX, 0FFF1HMOV AL,10H ;计数初值1000OUT DX,AL解:stack segment stackdw 1024 dupstack endsdata segmentfreq dw 8,,,,,,,,data endscode segment 'code'assume cs:code, ds:data,ss:stack start: mov ax,datamov ds,axagain:mov ah,01hin 21hcmp al,1BHjz nextcmp al,31Hjb next1cmp al,38Hja next1and al,0fhmov ah,00hmov si,axmov bx,offset freqmov ax,BX+SIcall speakercall speakonjmp againnext1: call speakoffjmp againnext: mov ax,4c00hint 21hspeaker procpush axmov al,0b6hout 43h,alpop axout 42h,almov al,ahout 42h,alretspeaker endp speakon procpush axin al,61hor al,03hout 61h,alpop axretspeakon endp speakoff procpush axin al,61hand al,0fchout 61h,alpop axretspeakoff endpcode endsend starts 解:1 f 1162f。
微机原理与接口技术+参考答案
微机原理与接口技术+参考答案“微机原理与接口技术”习题解答第1章微型计算机系统〔习题1.1〕简答题〔解答〕①处理器每个单位时间可以处理的二进制数据位数称计算机字长。
②总线信号分成三组,分别是数据总线、地址总线和控制总线。
③PC机主存采用DRAM组成。
④高速缓冲存储器Cache是处理器与主存之间速度很快但容量较小的存储器。
⑤ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS 的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。
⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。
⑦主板芯片组是主板的核心部件,它提供主板上的关键逻辑电路。
⑧MASM是微软开发的宏汇编程序。
⑨指令的处理过程。
处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
⑩机器语言层,即指令集结构。
(学生很多认为是:汇编语言层。
前4章主要涉及汇编语言,但本书还有很多处理器原理等内容)〔习题1.2〕判断题〔解答〕①错②错③对④错⑤对⑥错⑦错⑧对⑨错⑩错〔习题1.3〕填空题〔解答〕①Central Processing Unit,中央处理单元,处理器②1MB,4GB③216,64KB④EXE,COM⑤Instruction Set Architecture⑥目录⑦MMX,SSE3⑧64⑨IBM,DOS⑩PCI〔习题1.4〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕CPU:CPU也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。
处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。
微机原理及接口技术课后习题及参考答案
第一章课后习题1.1 把下列十进制数转换成二进制数、八进制数、十六进制数。
① 16.25 ② 35.75 ③ 123.875 ④ 97/1281.2 把下列二进制数转换成十进制数。
① 10101.01 ② 11001.0011 ③ 111.01 ④ 1010.11.3 把下列八进制数转换成十进制数和二进制数。
① 756.07 ② 63.73 ③ 35.6 ④ 323.451.4 把下列十六进制数转换成十进制数。
① A7.8 ② 9AD.BD ③ B7C.8D ④ 1EC1.5 求下列带符号十进制数的8位补码。
① +127 ② -1 ③ -0 ④ -1281.6 求下列带符号十进制数的16位补码。
① +355 ② -11.7 计算机分那几类?各有什么特点?1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。
1.9 80X86微处理器有几代?各代的名称是什么?1.10 你知道现在的微型机可以配备哪些外部设备?1.11 微型机的运算速度与CPU的工作频率有关吗?1.12 字长与计算机的什么性能有关?习题一参考答案1.1 ① 16.25D=10000.01B=20.2Q=10.4H② 35.75D=100011.11B=43.6Q=23.CH③ 123.875D=1111011.111B=173.7Q=7B.EH④ 97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H1.2 ① 10101.01B=21.25D ② 11001.0011B=25.1875D③ 111.01B=7.25D ④ 1010.1B=10.5D1.3 ① 756.07Q=111101110.000111B=494.109D ②63.73Q=110011.111011B=51.922D③ 35.6Q=11101.110B=29.75D ④323.45Q=11010011.100101B=211.578D1.4 ① A7.8H=167.5D ② 9AD.BDH=2477.738D③ B7C.8D=2940.551D ④ 1ECH=492D1.5 ① [+127]补=01111111 ② [-1]补= 11111111③ [-0]补=00000000 ④[-128]补=100000001.6 ① [+355]补= 0000000101100011 ② [-1]补= 1111 1111 1111 11111.7 答:传统上分为三类:大型主机、小型机、微型机。
《微机原理与接口技术》参考答案完整版
《微机原理与接口技术》参考答案完整版《微机原理与接口技术》习题参考答案习题21.为何说8086CPU是16位CPU?答:16位指的是8086CPU的字长,而字长一般来说和运算器、寄存器、总线宽度一致。
因为8086CPU的内部寄存器、内部运算部件以及内部操作都是按16位设计的,这决定了它的字长为16位。
2.8086CPU由哪两个单元组成?其中,指令队列在哪个单元中,有何作用?答:总线接口单元(Bus Interface Unit,BIU)和执行单元(Execution Unit,EU)。
指令队列在BIU中。
它的作用是当EU在执行指令时,空闲的BIU可以从内存读取后续指令到指令队列,这样就可以将取指令工作和执行指令工作重叠进行,从而提高CPU的工作效率,加快指令的执行速度。
3.8086CPU中8位寄存器和16位寄存器是什么关系?答:8086的通用寄存器包括数据寄存器、指针寄存器和变址寄存器。
其中数据寄存器包含AX、BX、CX、DX四个16位寄存器,但他们每个都可以分开作为两个单独的8位寄存器使用。
8086的指针寄存器和变址寄存器不可分割为8位寄存器。
4.8086CPU中的IP寄存器有何用途?答:IP寄存器是指令指针寄存器,用来存放下一条要执行的指令在代码段中的偏移地址。
在程序运行过程中,IP寄存器始终指向下一条指令的首地址,与CS寄存器联合确定下一条指令的物理地址。
8086就是通过IP寄存器来控制指令序列的执行流程。
5.在标志寄存器中,用于反映运算结果属性的标志位有哪些?它们每一位所表示的含义是什么?答:有CF、PF、AF、ZF、SF、OF。
它们的含义如下:CF:进位标志。
它记录运算时从最高有效位产生的进位值或结果值。
最高有效位有进位或有借位时CF=1,否则CF=0。
PF:奇偶标志。
它记录运算结果的奇偶检验条件。
当结果操作数中“1”的个数为偶数时PF=1,否则PF=0。
AF:辅助进位标志。
在字节运算时,由低半字节(字节的低4位)向高半字节有进位或借位时,AF=1,否则AF=0。
(完整版)《微机原理及接口技术》课后习题详细解答(期末复习)
⑷mov ax,[bx];AX=3412H,寄存器间接寻址
⑸mov ax,[bx+1100h];AX=4C2AH,寄存器相对寻址
⑹mov ax,[bx+si];AX=7856H,基址变址寻址
⑺mov ax,[bx][si+1100h];AX=65B7H,相对基址变址寻址
状态标志用于记录程序运行结果的状态信息;
控制标志用于控制指令执行的形式。
OF--溢出标志,若算术运算的结果有溢出,则OF=1;否则OF=0
DF--方向标志
IF--中断允许标志
TF--陷阱标志
SF--符号标志
ZF--零标志,若运算结果为0,则ZF = 1;否则ZF = 0
AF--辅助进位标志
PF--奇偶标志
〔解答〕
+37
-37
16位
32位
16位
32位
00 25H
00 00 00 25H
FF 5BH
FF FF FF 5BH
第
〔习题2.1〕微处理器内部具有哪3个基本部分?
〔解答〕算术逻辑单元ALU、寄存器组和控制器;
总线接口单元BIU:管理8088与系统总线的接口负责cpu对接口和外设进行访问
执行单元EU:负责指令译码、执行和数据运算;
sub cx,540
sbb bx,0
mov ax,V
〔解答〕
.物理地址:物理存储单元具有的一个唯一的20位编号
逻辑地址:在8088内部和用户编程时,所采用的“段地址:偏移地址”形式
将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址
微机原理与接口技术课后习题答案 清华大学出版社
微机原理与接口技术课后部分习题参考答案第一章2. 第3项任务,根据状态标志位的状态决定转移方向。
3. 程序存储是将要执行的程序的全部指令存储到存储器中,程序控制指程序开始执行后,通过指令流控制数据或计算机,完成设定的任务。
4. 分BIU 总线接口部件和EI执行部件两大部件,其中总线接口部件BIU负责取指令和数据,执行部件EI负责执行指令及运算。
在执行一条指令的同时可以取下一条指令,重叠运行,速度快。
5. 有6个状态标志,分别为进位标志CF、溢出标志OF、零标志ZF、奇偶标志PF、负标志SF、辅助进位标志AF。
3个控制标志分别为中断允许标志IF、单步标志TF、方向标志DF。
标志位的内容可以通过标志位操作指令来操作,例如CLC指令清除进位位,即使CF=0,STC指令使CF=1,CLI指令使IF=0,禁止中断,STI指令使IF=1,允许中断。
还可以通过LAHF指令取来标识寄存器的内容修改后用SAHF指令送回去。
也可以用PU SHF/POPF指令来修改标志寄存器的内容。
6. 实模式下分段靠4个段寄存器实现。
段寄存器中的值就是段地址,当偏移地址为0时的段地址+偏移地址就是该段的起始地址。
物理地址是由段地址左移4位后与偏移地址相加形成的20位地址。
7. 说法不一定正确。
对顺序执行指令的计算机是对的。
对重叠或流水线的计算机就不对了。
例如对8086CPU,由于采用了取指令与执行指令的一次重叠,尽管执行一条指令的总时间并没有变化,但连续执行n条指令时,总的时间会大大缩短,可以简单的比喻成总时间为原时间的二分之一,快了一倍。
8. 引入流水线后,执行一条指令的总时间并没有变化。
9. 高速缓存的目的是提高存储器的速度,进而提高了CPU的速度。
虚拟存储器的目的是为了给程序员或程序一个大的存储或运行空间。
10。
8086采用总线接口部件BIU与执行部件EU分开提高了速度,286将8086的BIU进一步分成3个部件,提高了并行性。
微机原理与接口技术课后习题答案(详细完全版)
segment stack db 1024(0) stack ends data segment string db 'Hello,Assembly!',0dH,0aH,‘$’ data ends code segment 'code' assume cs:code,ds:data,ss:stack start: mov dx,offset string mov ah,9 int 21h code ends end start
8
next1:
next2:
3.21
restart: again:
next:
fun0: fun1: fun2: fun3: fun4: fun5: fun6: fun7:
disp:
done:
; mov int pop pop jmp …
ah,2 21h bx ax restart
;显示一个字符
3.22 编制程序完成 12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H 和 34H 等 10 个字节数据之和,并将结果存入字节变量 SUM 中(不考虑溢出和进位) 。 ;wjxt322.asm .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据 num equ 10 ;数据个数 sum db ? ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 3.23 求主存 0040h:0 开始的一个 64KB 物理段中共有多少个空格? ; wjxt323.asm .model small .code start: mov ax,0040h ;送段地址 mov ds, ax mov si, 0 ;偏移地址 mov cx, si ;计数(循环次数) xor ax, ax ;空格计数器清零 again: cmp byte ptr [si], 20h ;与空格的 ASCII 码比较 jne next ;不是空格,转 inc ax ;是空格,空格数加 1 next: inc si ;修改地址指针 loop again ;cx=cx-1,如 cx=0 退出循环 .exit 0
微机原理及接口技术课后习题答案
第1章(1.6 习题)1.简述名词的概念:微处理器、微型计算机、微型计算机系统。
答:(1)微处理器:微处理器(Microprocessor)简称µP或MP,或CPU。
CPU是采用大规模和超大规模集成电路技术将算术逻辑部件ALU(Arithmetic Logic Unit)、控制部件CU (Control Unit)和寄存器组R(Registers)等三个基本部分以及内部总线集成在一块半导体芯片上构成的电子器件。
(2)微型计算机:微型计算机(Microcomputer)是指以微处理器为核心,配上由大规模集成电路制作的存储器、输入/输出接口电路及系统总线等所组成的计算机,简称微机。
(3)微型计算机系统:微型计算机系统由硬件与软件两大部分组成,分别称为硬件(Hardware)系统与软件(Software)系统。
其中,硬件(Hardware)系统由CPU、内存储器、各类I/O接口、相应的I/O设备以及连接各部件的地址总线、数据总线、控制总线等组成。
软件(Software)系统:计算机软件(Software)是指为运行、维护、管理、应用计算机所编制的程序及程序运行所需要的数据文档资料的总和。
一般把软件划分为系统软件和应用软件。
其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。
而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。
2.简述名词的概念:指令寄存器、地址寄存器、标志寄存器。
答:(1)指令寄存器:指令寄存器(Instruction Register,IR)用来保存计算机当前正在执行或即将执行的指令。
当一条指令被执行时,首先,CPU从内存取出指令的操作码,并存入IR中,以便指令译码器进行译码分析。
(2)地址寄存器:地址寄存器(Address Register,AR)被动地接受IP传送给它的地址值(二进制地址),AR的作用是保持IP送来的地址,并且以并行方式连接输出到CPU的地址引脚上,以便CPU访问指定的内存单元。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章1.1 解:五代,详细见书1.2 解:微型计算机:以大规模、超大规模集成电路为主要部件,以集成了计算机主要部件——控制器和运算器的微处理器为核心,所构造出的计算机系统 。
PC机:PC(Personal Computer)机就是面向个人单独使用的一类微机 。
单片机:用于控制的微处理器芯片,内部除CPU外还集成了计算机的其他一些主要部件,如:ROM、RAM、定时器、并行接口、串行接口,有的芯片还集成了A/D、D/A转换电路等。
数字信号处理器DSP:主要面向大流量数字信号的实时处理,在宿主系统中充当数据处理中心,在网络通信、多媒体应用等领域正得到越来越多的应用1.3 解:微机主要有存储器、I/O设备和I/O接口、CPU、系统总线、操作系统和应用软件组成,各部分功能如下:CPU:统一协调和控制系统中的各个部件系统总线:传送信息存储器:存放程序和数据I/O设备:实现微机的输入输出功能I/O接口:I/O设备与CPU的桥梁操作系统:管理系统所有的软硬件资源1.4 解:系统总线:传递信息的一组公用导线,CPU通过它们与存储器和I/O设备进行信息交换 。
好处:组态灵活、扩展方便三组信号线:数据总线、地址总线和控制总线 。
其使用特点是:在某一时刻,只能由一个总线主控设备来控制系统总线,只能有一个发送者向总线发送信号;但可以有多个设备从总线上同时获得信号。
1.5解:(1)用于数值计算、数据处理及信息管理方向。
采用通用微机,要求有较快的工作速度、较高的运算精度、较大的内存容量和较完备的输入输出设备,为用户提供方便友好的操作界面和简便快捷的维护、扩充手段。
(2)用于过程控制及嵌人应用方向。
采用控制类微机,要求能抵抗各种干扰、适应现场的恶劣环境、确保长时间稳定地工作,要求其实时性要好、强调其体积要小、便携式应用强调其省电。
1.6 解:11.7 解:I/O通道:位于CPU和设备控制器之间,其目的是承担一些原来由CPU处理的I/O任务,从而把CPU从繁杂的I/O任务中解脱出来。
由10根信号线组成(A9-A0)。
1.8解:BIOS:基本输入输出系统。
主要功能:用来驱动和管理诸如键盘、显示器、打印机、磁盘、时钟、串行通信接口等基本的输入输出设备1.9 解:基本RAM区:640KB保留RAM区:128KB扩展ROM区:128KB基本ROM区:128KB1.10 解:(1)、数—用来直接表征量的大小,包括:定点数、浮点数。
(2)、码—用来指代某个事物或事物的某种状态属性,包括:二进制、八进制、十进制、十六进制。
区别:使用场合不同,详见P16.1.11 解:(1)231021016174.66)(10101110.10101)174.66)(.8)AE A ==(((2)210216100011101011.01011)(2283.34375)100011101011.01011)(8.58)EB ==(((3)1621610F18A6.6)(11110001100010100110.0110)F18A6.6)(989350.375)==((1.12 解: 原码 反码 补码 +37 00100101/25H 00100101/25H 00100101/25H -37 10100101/A5H 11011010/DAH 11011011/DBH1.13 解:+37 -3716位 32位 16位32位00 25H00 00 00 25HFF 5BHFF FF FF 5BH1.14 解: 无符号数:70D 补码有符号数:70D BCD 码:46D ASCII:F1.15 解: 1)、相加后若出现和大于9,则将和减去10后再向高位进1 2)、若出现组间进位,则将低位加61.16 解: 详见课本16页。
1.17 解: C3 40 20 001.18 解: 50 50H十进制值5080二进制十六进制二进制十六进制0011 0010B 32H 0101 0000B 50H1.19 解:D:44Hd:64HCR:0DHLF:0AH0:30HSP:20HNUL:00H1.20 解:国标码:36 50H机内码:B6 B0H第3章3.2 解:(1)完整的汇编语言源程序由段组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内(5)通常,程序还需要一个堆栈段3.3 解:存储模式特 点TINY COM类型程序,只有一个小于64KB的逻辑段(MASM 6.x支持)SMALL小应用程序,只有一个代码段和一个数据段(含堆栈段),每段不大于64KB COMPACT代码少、数据多的程序,只有一个代码段,但有多个数据段MEDIUM代码多、数据少的程序,可有多个代码段,只有一个数据段LARGE大应用程序,可有多个代码段和多个数据段(静态数据小于64KB)4HUGE更大应用程序,可有多个代码段和多个数据段(对静态数据没有限制)FLAT32位应用程序,运行在32位80x86CPU和Windows 9x或NT环境3.4 解:开始位置:用标号指明返回DOS:利用DOS功能调用的4CH子功能来实现汇编停止:执行到一条END伪指令时,停止汇编3.5 解:段定位、段组合和段类型。
3.6 解:stack segment stackdb 1024(0)stack endsdata segmentstring db 'Hello,Assembly!',0dH,0aH,‘$’data endscode segment 'code'assume cs:code,ds:data,ss:stackstart: mov dx,offset stringmov ah,9int 21hcode endsend start3.7 解:(1). EXE程序程序可以有多个代码段和多个数据段,程序长度可以超过64KB通常生成EXE结构的可执行程序(2). COM程序只有一个逻辑段,程序长度不超过64KB需要满足一定条件才能生成COM结构的可执行程序(MASM 6.x需要采用TINY模式)3.8 解:符号定义伪指令有“等价EQU”和“等号=”:符号名 EQU 数值表达式符号名 EQU <字符串>符号名 = 数值表达式EQU用于数值等价时不能重复定义符号名,但“=”允许有重复赋值。
例如: X= 7 ;等效于:X equ 7X= X+5 ;“X EQU X+5”是错误的53.9 解:(1) al=67h(2) ax=133h,dx=4h(3) ax=0230h(4) al=41h(4) ax=7654h3.10 解:(1)41 h 42h43h11h45h 46h -1 ? 4 4 4 -1 ?4 4 4 -1 ?4 4 4(2)10h 00h 0fbh 0ffh ? ? ? ? ? ?3.11 解:.datamy1b db 'Personal Computer'my2b db 20my3b db 14hmy4b db 00010100bmy5w dw 20 dup(?)my6c = 100my7c = <'Personal Computer'>3.12 解:利用定位伪指令控制,如org,even,align3.13 解:包括逻辑地址和类型两种属性。
3.14 解:;数据段org 100hvarw dw 1234h , 5678hvarb db 3 , 4vard dd 12345678hbuff dd 10 dup(?)mess db 'Hello';代码段mov ax , offset varb + offset messmov ax , type buff + type mess + type vardmov ax , sizeof varw+ sizeof buff+ sizeof mess6mov ax , lengthof varw+ lengthof vard3.15 解:(1) 1000超过一个字节所能表达的最大整数(2)SI应为偶数(3)两个内存单元不能直接运算(4)应改为[al+1](5)条件转移指令后面应接标号,而不是变量3.16 解:mov ah,1 ;只允许输入小写字母int 21hsub al,20h ;转换为大写字母mov dl,almov ah,2int 21h ;显示3.17 解:mov bx,offset LEDtablemov al,lednumxlat3.18 解:mov ax, bufXcmp ax, bufYjae donemov ax, bufYdone: mov bufZ, ax3.19 解:.model small.stack.databufX dw -7signX db ?.code.startupcmp bufX,0 ;test bufX,80hjl next ;jnz nextmov signX,0jmp donenext: mov signX,-1done: .exit 0end73.20 解:mov dl,’2’mov ax,bufXcmp ax,bufYje next1dec dlnext1: cmp ax,bufZje next2dec dlnext2: mov ah,2int 21h3.21 解:;代码段mov al,numbermov bx,0 ;BX←记录为1的位数restart: cmp al,0 ;AL=0结束jz doneagain: shr al,1 ;最低位右移进入CFjc next ;为1,转移inc bx ;不为1,继续jmp againnext: push axpush bxshl bx,1 ;位数乘以2(偏移地址要用2个字节单元)jmp addrs[bx] ;间接转移:IP←[table+BX];以下是各个处理程序段fun0: mov dl,'0'jmp dispfun1: mov dl,'1'jmp dispfun2: mov dl,'2'jmp dispfun3: mov dl,'3'jmp dispfun4: mov dl,'4'jmp dispfun5: mov dl,'5'jmp dispfun6: mov dl,'6'jmp dispfun7: mov dl,'7'jmp disp8;disp: mov ah,2 ;显示一个字符int 21hpop bxpop axjmp restartdone: …3.22 编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。