微机原理与接口技术课后答案清华版
微机原理与接口技术(第二版)课后习题答案完整版
微机原理与接口技术(第二版)清华大学出版社习题 11.什么是汇编语言,汇编程序,和机器语言?答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。
汇编语言是面向及其的程序设计语言。
在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。
这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。
2.微型计算机系统有哪些特点?具有这些特点的根本原因是什么?答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。
这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上。
3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。
答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。
“存储程序控制”的概念可简要地概括为以下几点:①计算机(指硬件)应由运算器、存储器、控制器和输入 /输出设备五大基本部件组成。
② 在计算机内部采用二进制来表示程序和数据。
③ 将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。
④ 五大部件以运算器为中心进行组织。
4.请说明微型计算机系统的工作过程。
答:微型计算机的基本工作过程是执行程序的过程,也就是CPU 自动从程序存放的第 1 个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。
如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。
5.试说明微处理器字长的意义。
答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。
它决定着计算机内部寄存器、 ALU 和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。
微机原理与接口技术课后习题答案
微机原理与接口技术习题参考答案第一章(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 总线上。
《微机原理与接口技术》课后习题答案
9.微型计算机系统的硬件由哪些部件组成?简述它们的主要功能。
答:构成计算机的硬件系统通常有“五大件”组成:输入设备、输出设备、存储器、运算器和控制器。
输入设备:将数据、程序、文字符号、图象、声音等信息输送到计算机中。常用的输入设备有,键盘、鼠标、数字化仪器、光笔、光电阅读器和图象扫描器以及各种传感器等。
12。如果从存储单元2000H开始存放的字节数据为:3AH,28H,56H,4FH试画出示意图说明:从2000H到2001H单元开始取出一个字数据各要进行几次操作,取出的数据分别等于多少.
答:(2000H)=3AH,(2001H)=28H,(2002H)=56H,(2003H)=4FH,从2000H取一个字要1次操作,数据为283AH;从2001H取一个字要2次操作,数据为5628H。
2)反码,是计算机中表示二进制数的一种方法,若原码的符号位不变,对其余位逐位取反,即得到其反码
3)补码,正数的补码与原码相同,负数的补码:符号位为1,其余位为该数绝对值的原码按位取反,然后整个数加1。
4)性质
7.计算机中为什么采用补码形式存储数据?当计算机的字长n=16时,补码的数据表示范围是多少?
答: 1)ASCII码的编码方法是使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符
2)十进制205的ASCII码是:011 000 101
3)字符串A+B=C的ASCII码是:412B423D43
5.机器数与真值有什么区别?机器数有哪些特点?
答:1)真值是所表示的数的大小,一般用十进制表征。
答:AD15~AD0:地址/数据总线;A19/S6~A16/S3:地址/状态总线; :读控制
微机原理与接口技术课后答案
第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修正。
习题6参考答案-微机原理与接口技术(第2版)-李珍香-清华大学出版社
习题与思考题66.1 参考答案:按总线功能或信号类型来分,有数据总线、地址总线和控制总线。
按总线的层次结构分来为,有:CPU总线:微机系统中速度最快的总线,主要在CPU内部,连接CPU内部部件,在CPU周围的小范围内也分布该总线,提供系统原始的控制和命令。
局部总线:在系统总线和CPU总线之间的一级总线,提供CPU和主板器件之间以及CPU到高速外设之间的快速信息通道。
系统总线:也称为I/O总线,是传统的通过总线扩展卡连接外部设备的总线。
由于速度慢,其功能已经被局部总线替代。
通信总线:也称为外部总线,是微机与微机,微机与外设之间进行通信的总线。
常用的系统总线有:ISA总线、PCI总线、AGP总线、PCI-Express总线常用的外总线有:USB总线、IEEE 1394总线6.2 参考答案:(1)可以简化系统结构,便于系统设计制造。
(2)大大减少连线数目,便于布线,减小体积,提高系统的可靠性。
(3)便于接口设计,所有与总线连接的设备均可采用类似的接口。
(4)便于系统的扩充、更新与灵活配置,易于实现系统模块化。
(5)便于设备的软件设计和故障的诊断、维修等。
6.3参考答案:使用标准总线,不仅可以简化设计,有利于组织大规模专业化生产,缩短研制周期,同时也为灵活配置系统以及系统的升级、改造和维护带来了方便。
总线标准的一般特性规范包含:(1)物理特性定义总线物理形态和结构布局,规定总线的形式(电缆、印制线或接插件)及具体位置等。
(2)机械特性定义总线机械连接特性,其性能包括接插件的类型、形状、尺寸、牢靠等级、数量和次序等。
(3)功能特性定义总线各信号线功能,不同信号实现不同功能。
(4)电气特性定义信号的传递方向、工作电平、负载能力的最大额定值等。
6.4总线位宽:是指总线上能同时传送的数据位数,用bit(位)表示。
总线带宽(总线最大传输率):是指单位时间内总线上可传送的数据量,可用字节数/秒(B/s)或比特数/秒(b/s)表示总线工作频率:是指用于控制总线操作周期的时钟信号频率,所以也叫总线时钟频率,通常以MHz 为单位。
微机原理与接口技术课后习题答案_清华大学出版社
微机原理与接口技术课后部分习题参考答案第一章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指令送回去。
也可以用PUSHF/POPF指令来修改标志寄存器的内容。
6. 实模式下分段靠4个段寄存器实现。
段寄存器中的值就是段地址,当偏移地址为0时的段地址+偏移地址就是该段的起始地址。
物理地址是由段地址左移4位后与偏移地址相加形成的20位地址。
7. 说法不一定正确。
对顺序执行指令的计算机是对的。
对重叠或流水线的计算机就不对了。
例如对8086CPU,由于采用了取指令与执行指令的一次重叠,尽管执行一条指令的总时间并没有变化,但连续执行n条指令时,总的时间会大大缩短,可以简单的比喻成总时间为原时间的二分之一,快了一倍。
8. 引入流水线后,执行一条指令的总时间并没有变化。
9. 高速缓存的目的是提高存储器的速度,进而提高了CPU的速度。
虚拟存储器的目的是为了给程序员或程序一个大的存储或运行空间。
10。
8086采用总线接口部件BIU与执行部件EU分开提高了速度,286将8086的BIU进一步分成3个部件,提高了并行性。
386在286基础上进一步增加成6个逻辑部件,实现多条指令重叠,进一步提高了速度,486采用硬组合逻辑控制器,同时采用内嵌高速缓存,提高速度。
专升本微机原理_清华版_第五章(二)
移位指令的特点: 指令码 目标,计数值 ; 目标只能是寄存器、存储器,计数值只能是1或CL中 的值; 影响标志位的情况: 移位指令:除AF=任意值外,其余的根据结果而定 循环移位指令:只影响OF和CF(与逻辑运算指令刚好 相反)
P128 将AL中的值乘以10 的例子: SAL AL,1 ; AL=AL*2 MOV BL,AL ;将2X存于BL中 MOV CL,2 ;移位次数存入CL SAL AL,CL ;在乘以2的基础上再移两位相 当于乘以8 ADD AL,BL ;加上2X则=乘以10 例如,原AL=00000011B (3) 移一位得 00000110B (6), 00000110B 再移两位得 00011000B (24) 00011000B + 00000110B = 00011110B (30) 结果 3*10=30
OR 目标,源 (常用于将二进制数的某些位置1)
OR AL,30H; OR AX,00F0H OR BYTE PTR[BP],0FH OR BL, 0FH xxxxxxxx (BL)
OR
00001111 0F xxxx1111 结果(BL)
XOR 目标,源 (用于将二进制数的某些位求反,将要求反的某些 位与1异或。或对于某寄存器清0)
串扫描(影响标志位)
执行的操作: ①如(CX)=0或ZF=1(某次比较的结果两个操作数相等) 则退出REP,否则往下执行。 ② CX CX-1 例: ③ 执行其后SCAS串指令 MOV DI, OFFSET String ④ 重复①-③
MOV CX, xx MOV AL, ‗h‘ REPNZ SCASB JNZ Not_Found Found:
3.串比较(影响标志位) CMPSB CMPSW 比较地址为DS:SI、ES:DI的两 个字节/字
(完整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.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 答:传统上分为三类:大型主机、小型机、微型机。
《微机原理与接口技术》参考答案
《微机原理与接口技术》参考答案《微机原理与接口技术》参考答案《微机原理与接口技术》习题参考答案习题 2 1. 为何说8086CPU 是16位CPU?答:16位指的是8086CPU的字长,而字长一般来说和运算器、寄存器、总线宽度一致。
因为8086CPU的内部寄存器、内部运算部件以及内部操作都是按16位设计的,这决定了它的字长为16位。
2. 8086CPU哪两个单元组成?其中,指令队列在哪个单元中,有何作用?答:总线接口单元和执行单元。
指令队列在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:辅助进位标志。
在字节运算时,低半字节向高半字节有进位或借位时,AF=1,否则AF=0。
微机原理与接口技术课后习题答案
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停止当前正在执行的程序,转去执行处理紧急事件的程序,待处理完紧急事件后,再返回接着执行刚才被停止执行的原程序。
[VIP专享]微机原理与接口技术课后习题答案_清华大学出版社
微机原理与接口技术课后部分习题参考答案第一章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指令送回去。
也可以用PUSHF/POPF指令来修改标志寄存器的内容。
6. 实模式下分段靠4个段寄存器实现。
段寄存器中的值就是段地址,当偏移地址为0时的段地址+偏移地址就是该段的起始地址。
物理地址是由段地址左移4位后与偏移地址相加形成的20位地址。
7. 说法不一定正确。
对顺序执行指令的计算机是对的。
对重叠或流水线的计算机就不对了。
例如对8086CPU,由于采用了取指令与执行指令的一次重叠,尽管执行一条指令的总时间并没有变化,但连续执行n条指令时,总的时间会大大缩短,可以简单的比喻成总时间为原时间的二分之一,快了一倍。
8. 引入流水线后,执行一条指令的总时间并没有变化。
9. 高速缓存的目的是提高存储器的速度,进而提高了CPU的速度。
虚拟存储器的目的是为了给程序员或程序一个大的存储或运行空间。
10。
8086采用总线接口部件BIU与执行部件EU分开提高了速度,286将8086的BIU进一步分成3个部件,提高了并行性。
386在286基础上进一步增加成6个逻辑部件,实现多条指令重叠,进一步提高了速度,486采用硬组合逻辑控制器,同时采用内嵌高速缓存,提高速度。
微机原理与接口技术牟琦贾建萍清华大学出版第三章答案
微机原理与接口技术牟琦贾建萍清华大学出版第三章答案CH03 汇编语言程序设计习题与思考题1.下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。
V AR1 DB 10,2V AR2 DW 5 DUP(?),0V AR3 DB ‘HOW ARE YOU?’,3 DUP(1,2)V AR4 DD -1,1,0解答:字节空间----V AR1:2;V AR2:12;V AR3:20;V AR4:12。
存储空间的分配图:DS:0000 0A 02 00 00 00 00 00 00—00 00 00 00 00 00 48 4F 0010 57 20 20 41 52 45 20 20—59 4F 55 3F 01 02 01 020020 01 02 FF FF FF FF 01 00—00 00 00 00 00 002.假定V AR1 和V AR2 为字变量,LAB 为标号,试指出下列指令的错误之处。
(1)ADD V AR1,V AR2 (2)SUB AL,V AR1 (3)JMP LAB[CX] (4)JNZ V AR1(5)MOV [1000H],100 (6)SHL AL, 4解答:(1)两个操作数中至少有一个为寄存器;(2)AL 为字节,V AR1 为字变量,不匹配;(3)[]中不能用CX,LAB 为标号,非变量;(4)转向地址应为标号,不能是变量;(5)目的操作数的类型不确定;(6)SHL 指令中,当所移位数超过1 时,必须用CL 或CX 来取代所移位数。
3.对于下面的符号定义,指出下列指令的错误。
A1 DB ?A2 DB 10K1 EQU 1024(1)MOV K1,AX (2)MOV A1,AX(3)CMP A1,A2 (4)K1 EQU 2048解答:(1)K1 为常量,不能用MOV 指令赋值;(2)A1 为字节,AX 为字变量,不匹配;(3)A1 未定义,无法做比较指令;(4)K1 重新赋值前,必须用PURGE 释放。
《微机原理与接口技术》 (张凡 盛珣华 戴胜华 著) 清华大学出版社 北方交通大学出版社 课后答案
第二章微处理器及其结构2-7 什么是逻辑地址? 什么是物理地址? 在实地址方式下,如何求存储器的物理地址? 设一个16字的数据区,它的起始地址为70A0H:DDF6(段基址:偏移地址).写出这个数据区的首字单元和末字单元的物理地址.解:1). 实模式下,逻辑地址由段基址和偏移地址组成.物理地址是真正的存储单元的地址.2). 物理地址=段基址*16 + 偏移地址3). 首字单元地址:70A0H*16 +DDF6H = 70A00H + DDF6H = 7E7F6H末字单元地址:7E7F6H + (16-1)*2 = 7E7F6H + 1EH = 7E814H注意:相邻两个存储单元可构成一个字长为16位的字,在对准字时,用偶地址表示字的地址.1EH1CH 2H20H16H14H18H4H1AH10H0H12HEHCH8HAH6H第三章指令系统3-6 分别指出下列指令中源操作数和目标操作数的寻址方式. 若是存储器寻址,用表达式表示EA=?(1)AND AX, 00FFH(2)ADD BX, [00FFH](3)MOV AX, [BX+10H](4)ADD AX, [ESI*8](5)SUB [BP][SI], AX(6)MOV AX, [BX+DI+20H](7)CMP [SI], AX(8)OR AX, DX(9)MOV EAX, [ESI][EDI*2](10)PUSH DS解:(1)立即数寻址(2)直接寻址EA=00FFH(3)基址寻址EA=(BX)+10(4)比例间址EA=ESI*8(5)基址加间址寻址EA=(BP)+(SI)(6)带位移的基址加间址寻址EA=(BX)+(DI)+20H(7)间址寻址EA=(SI)(8)寄存器寻址(9)基址加比例间址寻址EA=(ESI)+(EDI)*2(10)寄存器寻址注意:◆16位寻址: BX和BP作为基址寄存器.BX以DS作为默认段寄存器,BP以SS为默认段寄存器.SI和DI作为间址寄存器. 默认DS为段寄存器◆32位寻址: 8个32位通用寄存器均可作为基址寄存器,其中ESP,EBP以SS为默认段寄存器,其余均以DS为默认段寄存器.除ESP外的其它7个寄存器均可作间址寄存器,EBP默认SS作段基址寄存器,其它以DS作段基址寄存器3-7 32位微机工作在实地址模式下, 已知(DS) = 1000和(SS) = 2000H, (SI) =007FH, (BX) = 0040H, (BP) = 0016H, 变量TABLE的偏移地址为0100H. 指出下列指令中源操作数的寻址方式,求它的有效地址(EA)和物理地址(PA).(1)MOV AX, [1234H](2)MOV AX, TABLE(3)MOV AX, [BX+100H](4)MOV AX, TABLE[BP][SI]解:(1)直接寻址EA=1234H PA=(DS)*16 + EA = 11234H(2)直接寻址EA=(TABLE)=0100H PA=(DS)*16+EA=10100H(3)基址寻址EA=(BX)+100H=0140H PA=(DS)*16+EA=10140H(4)带位移的基址加间址寻址EA=(BP)+(SI)+TABLE=0195H PA=(SS)*16+EA=20195H注意: 当基址寄存器和间址寄存器默认的段寄存器不同时,一般规定,由基址寄存器来决定默认的段寄存器为段基址寄存器. 这里BP为基址寄存器,所以默认SS为段基址寄存器.3-8 指出下列指令的错误,并加以改正.(1)MOV DS, 100(2)MOV 1020H, DX(3)SUB [1000H], [SI](4)PUSH AL(5)IN AL, [80H](6)MOV DS, ES(7)JMP BX(8)SHR DX, 4(9)OUT 380H, AX(10)ADD AL, BX(11)POP CS(12)MOV CL, 3300H解:(1)立即数不能直接传送到段寄存器中去应改为: MOV AX, 100MOV DS, AX(2)立即数只能出现在源操作数位置应改为: MOV DX,1020H(3)源操作数和目标操作数不能同时为寄存器寻址应改为: MOV AX, [1000H]SUB AX, [SI](4)PUSH指令不能操作8位数据应改为: PUSH AX(5)[80H ]不是端口IN AL ,80H应改为: IN AL, 80H(6)两个段寄存器之间不能直接传送应改为: MOV AX, ESMOV DS,AX(7)对(8)移位次数超过1的时候,要把移位次数放入CL中应改为: MOV CL, 4SHR DX, CL(9)端口地址大于255时,要把地址放入DX中应改为: MOV DX, 380HOUT DX, AX(10)源操作数和目标操作数不匹配应改为: ADD AX, BX(11)POP指令只能使用在存储器或通用寄存器可改为: POP AX(12)源操作数和目标操作数不匹配应改为: MOV CX, 3300H3-9 已知: (DS) = 091DH, (SS) = 1E4AH, (AX) = 1234H, (BX) = 0024H, (CX) = 5678H, (BP) = 0024H, (SI) = 0012H, (DI) = 0032H, [09226H] = 00F6H, [09228H] = 1E40H, [1E4F6H] = 091DH. 试求下列各指令单独执行后的结果.(1)MOV CL, 20H[BX][SI] ; (CL) = ?(2)MOV [BP][DI], CX ; [IE4F6H] = ?(3)LEA BX, 20H[BX][SI] : (BX) = ?MOV AX, 2[BX] : (AX) = ?(4)LDS SI, [BX][DI]MOV [SI], BX ; (SI]) = ?(5)XCHG CX, 32H[BX] ; (AX) = ?XCHG 20[BX][SI], AX ; [09226H] = ?解:(1)(CL) = 00F6H(2)[IE4F6H] = 5678H(3)(BX) = 0056H(AX) = 1E40H(4)(SI)= 0024H(5)(AX) = 5678H[09226H] = 1234H3-10 已知(AL) = 0C4H, DATA单元中内容为5AH, 写出下列每条指令单独执行后的结果(ODITSZAPC:0---xxux0)(1)AND AL, DATA(2)OR AL, DATA(3)XOR AL, DATA(4)NOT DATA(5)AND AL, 0FH(6)OR AL, 1H(7)XOR AL, 0FFH(8)TEST AL, 80H解:(1)(AL)= 40H CF=0,OF=0,SF=0,ZF=0,PF=0,AF无定义(2)(AL)= DEH CF=0,OF=0,SF=1,ZF=0,PF=1,AF无定义(3)(AL)= 9EH CF=0,OF=0,SF=1,ZF=0,PF=0,AF无定义(4)(AL)= A5H 不影响任何标志位(5)(AL)= 04H CF=0,OF=0,SF=0,ZF=0,PF=0,AF无定义(6)(AL)= C5H CF=0,OF=0,SF=1,ZF=0,PF=1,AF无定义(7)(AL)= 3BH CF=0,OF=0,SF=0,ZF=0,PF=0,AF无定义(8)(AL)不变=0C4H CF=0,OF=0,SF=1,ZF=0,PF=0,AF无定义3-12 (AL)=8EH,(BL)=72H,执行以下指令后,标志位OF、SF、ZF、AF、PF和CF的值是什么?(1)ADD AL,BL(2)AND BL,AL(3)CMP AL,BL(4)SHL AL,1解:(1)OF=0,SF=0,ZF=1,AF=1,PF=1,CF=1(2)OF=0,SF=0,ZF=0,AF=(未定义),PF=0,CF=0(3)OF=1,SF=0,ZF=0,AF=0,PF=0,CF=0(4)OF=1,SF=0,ZF=0,AF=(未定义),PF=0,CF=13-15 试用CMP指令和无条件指令实现以下判断(1)AX和CX中的内容均为无符号数①(AX)>(CX)则转至BIGGER标号执行②(AX)<(CX)则转至LESS标号执行(2)BX和DX中的内容均为有符号数①(BX)>(DX)则转至BIGGER标号执行②(BX)<(DX)则转至LESS标号执行解:(1)CMP AX,CXJA BIGGERJB LESS(2)CMP BX,DXJG BIGGERJL LESS第四章汇编语言程序设计4-9 试用伪指令编写一数据段与下面程序等效。
第微机原理与接口技术清华大学-精选
• 8088可工作于两种模式下
最小模式 最大模式
• 最小模式为单处理器模式,控制信号较 少,一般可不必接总线控制器。
• 最大模式为多处理器模式,控制信号较 多,须通过总线控制器与总线相连。
2020/8/2
16
最小模式下的连接示意图
时钟发 生器
ALE 8088 CPU
• •
地址 锁存
数据 收发
地址总线 数据总线 控制总线
2020/8/2
8
一、8088/8086CPU的特点
• 了解:
– 程序与指令 – 指令执行的一般过程 – 指令的串行执行与并行流水线执行 – 8088/8086CPU的主要特点
2020/8/2
9
1. 程序和指令
• 程序:
– 具有一定功能的指令的有序集合
• 指令:
– 由人向计算机发出的、能够为计算机所识别 的命令。
30
结论
• 指令预取队列的存在使EU和BIU两个部 分可同时进行工作,从而
• 提高了CPU的效率; • 降低了对存储器存取速度的要求
2020/8/2
31
8088的内部寄存器
• 含14个16位寄存器,按功能可分为三类
8个通用寄存器 4个段寄存器 2个控制寄存器
深入理解:每个寄存器中数据的含义
2020/8/2
2020/8/2
20
主要引线(最小模式下)
• 地址线和数据线:
–AD7--AD0:低8位地址和数据信号分时复用 。在传送地址信号时为单向,传送数据信 号时为双向。
–A19--A16:高4位地址信号,分时复用。 –A15--A8 :输出8位地址信号。
ቤተ መጻሕፍቲ ባይዱ
2020/8/2
微机原理与接口技术课后习题答案(详细完全版)
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
清华大学出版社 微机原理、汇编与接口技术答案
SAL AX,1
9B56
RCL AX,1
36AD
2.6。
指 令
存储器操作数的逻辑地址
注 释
SUB [BP],AL
0FC0H:0000H
段地址在SS
MOV [BX],BH
1000H:0000H
MOV [DI],DL
1000H:0000H
MOV ES:[SI],BL
2000H:0000H
ADD [BP+500H],AH
MOV DH,BX+3
g.INC COUNT
h.MOV NB,S2
i.MOV AX,[BX+S1]
j.ADD AX, [DX+NW]
解:a.MOV AX, WORD PTR S1
b.MOV BP, OFFSET S2
MOV CL, DS: [BP]
c.MOV SI, OFFSET NB
MOV BYTE PTR [SI],+
3. AX=0011H, AX=0107H
4.AX=005AH, AX=0900H, AX=0908H
5.AL=62H
6.AX=0248H
3-2
stacksegment stackstack
dw 32 dup(0)
stackends
datasegment
BVARDB 99H
dataends
codesegment
d.MOV DL, BYTE PTR NW+2
e.XCHG CH, CL
MOV CH, 0
MOV DI, CX
f.MOV BX, OFFSET S1
MOV DH, [BX+3]
习题1参考答案-微机原理与接口技术(第2版)-李珍香-清华大学出版社
习题与思考题11.1微型计算机系统中的硬件部分就是微机,这种说法对吗?参考答案:不对。
因为微型计算机系统由硬件和软件两大部分组成,仅有硬件部分的只是裸机。
1.2微型计算机中的CPU由哪些部件组成?各部件的功能是什么?参考答案:微型计算机中的CPU由运算器、控制器、寄存器组等部件组成。
其中运算器也称算术逻辑单元(ALU),主要用来完成对数据的运算(包括算术运算和逻辑运算);控制器是控制部件,它能自动、逐条地从内存储器中取指令,将指令翻译成控制信号,并按时间顺序和节拍发往其它部件,指挥各部件有条不紊地协同工作。
微机的数据输入/输出、打印、运算处理等一切操作都必须在控制器的控制下才能进行。
寄存器组是微处理器内部的一组暂时存储单元,主要起到数据准备、调度和缓冲的作用,寄存器的访问速度要比存储器快得多。
1.3请对字和字长的含义加以区分。
参考答案:字是计算机中作为一个整体被存取、传送或处理的二进制位数;字长是每个字中所包含的二进制位数。
一个字由若干个字节组成,不同的计算机系统的字长是不同的,常见的有8位、16位、32位、64位等,字长越长,计算机一次处理的信息位就越多,精度就越高,字长是计算机性能的一个重要指标。
字与字长的区别:字是单位,而字长是指标,指标需要用单位去衡量。
1.4解释微处理器、微型计算机、微型计算机系统的含义,并说明它们之间的关系。
参考答案:微处理器是微型计算机的核心部件,由运算器、控制器、寄存器组等部件组成;微型计算机是由微处理器、内存储器、接口等组成;微型计算机系统是以微型计算机为中心构成的一个比较大的应用系统。
微型计算机系统包含有微型计算机,而微型计算机又包含有微处理器。
1.5将下列十进制数分别转换为二进制数和十六进制数。
128 625 67.524.25参考答案:128=10000000B=80H 625=1001110001B=271H67.5=1000011.1=43.8H 24.25=11000.01B=18.4H1.6将下列二进制数分别转换成十进制数和十六进制数。
微机原理与接口技术课后习题参考答案
《微机原理与接口技术》李华贵主编课后习题参考答案第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)。
微机原理、汇编与接口技术(朱定华 编著)第三章习题参考答案一作者:华中科技大学 释梵本参考答案绝大多数经过上机测试,但因作者水平有限,一定尚有缺漏,希望大家批评指正,QQ:564630776,本参考答案将有绪本,不得用于商业用途!The answers below use the macros like this:standardstack macrostack segment stack 'stack'dw 32 dup(0)stack endsendmstandardstart macrobegin proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axmov ax,datamov ds,axendm3.1 编写程序实现下列运算(式中W为字变量,B为字节变量,不考虑溢出,除法余数不再参与运算)说实话,不考虑溢出,令我很费解,这样的得数还有意义吗?但是回头一想,单从作作业的角度来看倒是省了不少脑子,呵呵,那我就不考虑了。
(1) W1+W2+28-W3->W4if1include MACRO.LIBendifstandardstackdatasegmentW1dw 12W2dw 34W3dw 21W4dw 0code segmentstandardstartmov ax,W1add ax,W2add ax,28sub ax,W3mov W4,axretbegin endpcode endsend begin(2)(W1-W2)/10->W3...W4 if1include MACRO.LIB endifstandardstackdatasegmentW1dw 12W2dw 34W3dw 0W4dw 0dataendscode segmentstandardstartmov ax,W1sub ax,W2mov dl,10idiv dlmov bl,almov bh,0mov cl,ahmov ch,0mov W3,bxmov W4,cxretbegin endpcode endsend begin(3)(B1*B2)/(B3+6)->B4...B5 if1include MACRO.LIB endifstandardstackdatasegmentB1db 1B3db 3B4db 0B5db 0dataendscode segmentstandardstartmov al,B1imul B2mov bl,B3add bl,6idiv blmov B4,almov B5,ahretbegin endpcode endsend begin(4)((B1+B2-B3)/B4*B5)/2->W if1include MACRO.LIB endifstandardstackdatasegmentB1db 5B2db 4B3db 3B4db 2B5db 1W dw 0dataendscode segmentstandardstartmov bl,B1add bl,B2sub bl,B3mov al,B4mul B5xchg bx,axidiv bxmov cl,2idiv clmov byte ptr W,alretbegin endpcode ends3.2 编写程序段实现下列BCD数运算(式中字节变量B和AB分别为压缩BCD数和非压缩BCD数,字节变量W为压缩BCD数)(1)B1+B2-(B3-B4)->B5if1include MACRO.LIBendifstandardstackdatasegmentB1db 19HB2db 38HB3db 44HB4db 15HB5db 00Hdataendscode segmentstandardstartmov al,B1add al,B2DAAadd al,B4DAAsub al,B3DASmov B5,alretbegin endpcode endsend begin(2)W1+W2->W3if1include MACRO.LIBendifstandardstackdatasegmentW1dw 4455HW2dw 6677HW3dw 0000Hdataendscode segmentstandardstartmov al,byte ptr[W1]add al,byte ptr[W2]DAAmov byte ptr[W3],almov al,byte ptr[W1+1]DAAadd al,byte ptr[W2+1]DAAmov byte ptr[W3+1],al;here we ignore the highest cf according to the subject retbegin endpcode endsend begin(3)AB1*AB2/AB3->AB4if1include MACRO.LIBendifstandardstackdatasegmentAB1db 07HAB2db 08HAB3db 09HAB4db 00Hdataendscode segmentstandardstartmov ah,0mov al,AB1AADmov bl,almov al,AB2AADmul blmov cx,axmov ah,0mov al,AB3AADmov dl,almov ax,cxdiv dlAAMmov AB4,alretbegin endpcode endsend beginif1include MACRO.LIBendifstandardstackdatasegmentAB1db 07HAB2db 08HB db 00Hdataendscode segmentstandardstartmov ah,0mov al,AB1AADmov cl,10mul clpush axmov al,AB2AADmov bx,axpop axadd ax,bxAAMmov cl,4shl ah,clor al,ahmov B,alretbegin endpcode endsend begin3.3 写出执行下列程序段的中间结果和结果(1)0048 0702(2)00590411010704(3)01010107(4)这里的mov dl,10 因为我理解题意为十进制数10005A09000908(5)62(6)02483.4 编写程序,将字节变量BVAR中的压缩BCD数转换为二进制数,并存入原变量中。
if1include MACRO.LIBendifstandardstackdatasegmentbvar db 78Hdataendscode segmentstandardstartmov al,bvarmov ah,almov cl,4shr ah,cland al,0FHaadmov bvar,alretbegin endpcode endsend begin3.5 编写程序,求字节变量W1和W2中的非压缩BCD数之差(W1-W2、W1>=W2),将差存到字节变量B3中。
if1include MACRO.LIBendifstandardstackdatasegmentW1dw 0708HW2dw 0504HB3db 00Hdataendscode segmentstandardstartmov ax,W1mov cl,4shl ah,clor al,ahmov bl,almov ax,W2shl ah,clor al,ahxchg al,blsub al,bldasmov B3,alretcode endsend begin3.6 编写求两个4位非压缩BCD数之和,将和送显示器显示的程序。
if1include MACRO.LIBendifstandardstackdatasegmentW1db 0,4,0,5,0,6,0,7W2db 0,1,0,2,0,3,0,9result db 5 dup(0),'$'dataendscode segmentstandardstartmov cx,4mov ax,0mov si,7mov di,4bitand:add al,byte ptr W1[si]aaaadd al,byte ptr W2[si]aaaadd al,30Hmov result[di],alsub si,2dec dimov al,ahmov ah,0loop bitandadd al,30Hmov result[di],almov dx,offset resultcmp result[0],30Hjne showinc dxshow:mov ah,9int 21Hretbegin endpcode endsend begin3.7 编写求两个4位压缩BCD数之和,将和送显示器显示的程序。
if1endifstandardstackdatasegmentW1db 56H,18HW2db 97H,42Hresult db 5 dup(0),'$'dataendscode segmentstandardstartmov al,byte ptr W1[1]add al,byte ptr W2[1]daamov ah,aland ah,0F0Hmov cl,4shr ah,cland al,0FHadd al,30Hadd ah,30Hmov result[4],almov result[3],ahmov ax,0adc al,byte ptr W1add al,byte ptr W2daajnc omitmov result,31Homit:mov ah,aland ah,0F0Hmov cl,4shr ah,cland al,0FHadd al,30Hadd ah,30Hmov result[2],almov result[1],ahmov al,resultsub al,31Hjz showmov dx,offset result+1mov ah,9int 21Hretshow:mov dx,offset result mov ah,9int 21Hretbegin endpcode endsend begin注:不知道是我的版本不对,还是MS做的东西就是这个样子的。
在我的masm中指令je不能够正确地汇编,会被翻译成jz,所以我无奈地选用了jz,希望同学们注意,不要跟我走一样的弯路。
而且这种问题不仅存在与这一个指令哦!我还碰到一个,但是什么让我忘记了。