微机原理与接口技术课后答案清华版
- 格式:pdf
- 大小:105.42 KB
- 文档页数:10
微机原理与接口技术(第二版)清华大学出版社习题 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 总线上。
第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修正。
习题与思考题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.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。
微机原理、汇编与接口技术(朱定华 编著)第三章习题参考答案一作者:华中科技大学 释梵本参考答案绝大多数经过上机测试,但因作者水平有限,一定尚有缺漏,希望大家批评指正,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,希望同学们注意,不要跟我走一样的弯路。
而且这种问题不仅存在与这一个指令哦!我还碰到一个,但是什么让我忘记了。