存储器扩展汇编
- 格式:ppt
- 大小:1.65 MB
- 文档页数:27
汇编语言的种类汇编语言是计算机领域中的一门编程语言,它与机器语言密切相关,用于书写可以被计算机直接执行的程序代码。
汇编语言直接操作计算机底层硬件,因此在性能和效果上具有很大优势。
在汇编语言中,不同的体系结构和处理器都有不同的指令集和语法规则,这导致了汇编语言的种类繁多。
本文将介绍几种常见的汇编语言。
1. x86汇编语言x86汇编语言是最为广泛应用的汇编语言之一,在PC和服务器领域得到广泛使用。
x86指令集是英特尔和AMD等处理器厂商所采用的指令集架构,在x86汇编语言中,可以直接操作寄存器、内存以及其他外设,具有很高的灵活性和可操作性。
x86汇编语言使用Intel语法和AT&T语法两种不同的语法规则,常用的编译器有MASM、NASM和GAS。
2. ARM汇编语言ARM汇编语言广泛应用于移动设备、嵌入式系统和物联网等领域。
ARM处理器以其低功耗、高性能和内容丰富的架构而闻名,ARM汇编语言可以直接操作处理器寄存器、存储器和外设,具有很好的可移植性和可扩展性。
ARM汇编语言使用ARM体系结构定义的指令集和语法规则,常用的编译器有ARM汇编器和GNU汇编器等。
3. MIPS汇编语言MIPS汇编语言被广泛应用在嵌入式系统、数字信号处理以及网络设备等领域。
MIPS处理器以其简洁的指令集和高效的架构而著称,MIPS汇编语言可以直接控制寄存器、存储器以及其他外设,具有很高的执行效率和指令流水线能力。
MIPS汇编语言使用MIPS体系结构定义的指令集和语法规则,常用的编译器有MIPS汇编器。
4. PowerPC汇编语言PowerPC汇编语言主要应用于IBM PowerPC架构的服务器、工作站以及游戏机等领域。
PowerPC处理器以其高性能和可扩展性而著称,PowerPC汇编语言可以直接操作处理器寄存器、存储器和外设,具有很好的可移植性和性能表现。
PowerPC汇编语言使用PowerPC指令集和语法规则,常见的编译器有PowerPC汇编器。
《微机原理与汇编语言》课程教学大纲课程代码:030731004课程英文名称:Computer Principles and Assembly Language课程总学时: 56 讲课: 44 实验:12适用专业:电子信息科学与技术大纲编写(修订)时间:2010一、大纲使用说明(一)、课程地位及教学目标本课程是电子信息科学与技术专业的必修的专业基础课,主要任务是使学生掌握8088/8086系列汇编程序设计和PC机硬件原理知识,并具有一定的应用能力。
(二)、知识,能力及技能方面的基本要求通过本课程学习,要求学生从理论上和实践上掌握计算机的基本组成、工作原理、硬件的连接等内容,会编写较简单的汇编语言程序,并能利用PC总线进行I/O扩展及编程,建立微机系统的整体概念,使学生具有应用微机系统软硬件开发的初步能力,为后续课程单片机、数字系统设计、ARM等打下理论基础。
(三)、实施说明由于本课程是主要专业基础课,对先修课基础要求较高,在讲授具体内容时,应注重基础原理内容和实际应用介绍,使学生在掌握基本原理的基础上,具有一定解决实际问题的能力。
要提高学生的基本素质和应用能力,必须改变传统的教学手段。
要利用多媒体授课;增加自学讨论部分,使学生从被动吸收知识的状态下,转化到主动索取知识的状态中来。
同时,应不断增加新知识。
总学时:56学时;讲课:44学时;实验:12学时。
(四)、对习题,实验,实践环节的要求本大纲立足于实施素质教育为目标培养的。
习题从教材中选取,按时交作业,编程习题尽量上机验证。
实验强调应用性,学生应独立完成,实验前预习实验内容。
(五)、对先修课程的要求1.计算机导论课程中的计算机数的编码,二、十六进制,BCD,ASCII码;2.数字电子技术课程中的逻辑电路基础。
(六)、考核方式及成绩评定方式1.考核方式:考试。
2.考试方法:闭卷。
3.课程总成绩:最终理论考试与平时考核(包括实验、期中考试、作业、出勤、提问等)的总和。
汇编ADD指令知识点:加法汇编指令ADD⼀、加法指令 ADD(Addition) 格式格式: ADD A,B //A=A+B;功能: 两数相加1. OPRD1为任⼀通⽤寄存器或存储器操作数,可以是任意⼀个通⽤寄存器,⽽且还可以是任意⼀个存储器操作数. OPRD2为⽴即数,也可以是任意⼀个通⽤寄存器操作数.⽴即数只能⽤于源操作数B.2. A和B均为寄存器是允许的,⼀个为寄存器⽽另⼀个为存储器也是允许的, 但不允许两个都是存储器操作数.//也就是说A与B不能同时是指针如: add [eax],[ebx] 这类情况是错的例⼦:第三课中的add函数⾥有如下2句代码00401003 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] ; a00401006 |. 0345 0C ADD EAX,DWORD PTR SS:[EBP+C] ; b //eax=a+b⼆、ADD指令测试int _tmain(int argc, _TCHAR* argv[]){int i=0;printf("");i=i+0x100;i=i+0x111;int *p=&i;__asm{mov eax,0x222mov ebx,0x100add ebx,eax //ebx322//mov ebx,padd [ebx],0x111//00401048 |. 8003 11 ADD BYTE PTR DS:[EBX],11 ; i=i+11add i,0x111//DWORD WORD}/*0040101C |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; eax=i=00040101F |. 05 00010000 ADD EAX,100 ; eax=eax+100=0+100=10000401024 |. 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX ; i=eax=10000401027 |. 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8] ; ecx=i=1000040102A |. 81C1 11010000 ADD ECX,111 ; ecx=ecx+111=100+111=0x21100401030 |. 894D F8 MOV DWORD PTR SS:[EBP-8],ECX ; i=ecx=0x21100401033 |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8] ; edx=&i=ebp-8;00401036 |. 8955 FC MOV DWORD PTR SS:[EBP-4],EDX ; p=&i00401039 |. B8 22020000 MOV EAX,2220040103E |. BB 00010000 MOV EBX,10000401043 |. 03D8 ADD EBX,EAX ; ebx=ebx+eax=100+222=32200401045 |. 8B5D FC MOV EBX,DWORD PTR SS:[EBP-4] ; ebx=i=edx=ebp-800401048 |. 8003 11 ADD BYTE PTR DS:[EBX],11 ; i=i+110040104B |. 8145 F8 11010>ADD DWORD PTR SS:[EBP-8],111 ; i=i+111*/printf("");return0;}。
【汇编】各种寄存器介绍计算机寄存器分类简介:32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)1、数据寄存器数据寄存器主要⽤来保存操作数和运算结果等信息,从⽽节省读取操作数所需占⽤总线和访问存储器的时间。
32位CPU有4个32位的通⽤寄存器EAX、EBX、ECX和EDX。
对低16位数据的存取,不会影响⾼16位的数据。
这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相⼀致。
4个16位寄存器⼜可分割成8个独⽴的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有⾃⼰的名称,可独⽴存取。
程序员可利⽤数据寄存器的这种“可分可合”的特性,灵活地处理字/字节的信息。
寄存器EAX通常称为累加器(Accumulator),⽤累加器进⾏的操作可能需要更少时间。
可⽤于乘、除、输⼊/输出等操作,使⽤频率很⾼;寄存器EBX称为基地址寄存器(Base Register)。
它可作为存储器指针来使⽤;寄存器ECX称为计数寄存器(Count Register)。
在循环和字符串操作时,要⽤它来控制循环次数;在位操作中,当移多位时,要⽤CL来指明移位的位数;寄存器EDX称为数据寄存器(Data Register)。
在进⾏乘、除运算时,它可作为默认的操作数参与运算,也可⽤于存放I/O的端⼝地址。
在16位CPU中,AX、BX、CX和DX不能作为基址和变址寄存器来存放存储单元的地址,在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果,⽽且也可作为指针寄存器,所以,这些32位寄存器更具有通⽤性。
2、变址寄存器32位CPU有2个32位通⽤寄存器ESI和EDI。
1.除了单片机这一名称之外,单片机还可称为微控制器和嵌入式控制器。
2.单片机与普通微型计算机的不同之处在于其将CPU、存储器、I/O口三部分集成于一块芯片上。
3.在AT89C51单片机中,如果采用6MHz晶振,一个机器周期为2µs。
4.A T89C51单片机的机器周期等于12个时钟振荡周期。
5.内部RAM中,位地址为40H、88H的位,该位所在字节的字节地址分别为28H和88H。
6.片内字节地址为2AH单元的最低位的位地址是50H;片内字节地址为88H单元的最低位的位地址是88H。
7.若A中的内容为63H,那么,P标志位的值为0。
8.A T89C51单片机复位后,R4所对应的存储单元的地址为04H,因上电时PSW = 00H。
这时当前的工作寄存器区是0组工作寄存器区。
9.内部RAM中,可作为工作寄存器区的单元地址为00H~1F H。
10.通过堆栈操作实现子程序调用,首先要把PC的内容入栈,以进行断点保护。
调用返回时,再进行出栈保护,把保护的断点送回到PC。
11.AT89C51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为A T89C51单片机的PC是16位的,因此其寻址的范围为64KB。
12.在基址加变址寻址方式中,以A作为变址寄存器,以PC或DPTR作为基址寄存器。
13.指令格式是由操作码和操作数组成,也可仅由操作码组成。
14.假定累加器A中的内容为30H,执行指令1000H:MOVC A,@A+PC后,把程序存储器1031H单元的内容送入累加器A中。
15.在AT89C51单片机中,PC和DPTR都用于提供地址,但PC是为访问程序存储器提供地址,而DPTR是为访问数据存储器提供地址。
16.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的地址。
17.外部中断1的中断入口地址为0013H 。
定时器1的中断入口地址为001BH。
18.若(IP)= 00010100B,则优先级最高者为外部中断1,最低者为定时器T1。
第一章一、填空1.计算机系统主要由()、()两大部分组成。
2.计算机硬件子系统由()、()、()、()、()3.计算机软件子系统由()、()4.计算机应用软件由()、()、()、()5.计算机系统软件由()、()、()、()6.计算机的主要技术指标()、()、()7.计算机发展五代主要代表计算机()、()、()、()、()8.计算机未来发展方向()、()、()、()9.计算机按功能可分为()、()、()10。
( )与()、输入输出接口和系统总线合称为计算机主机。
11.用高级语言编写的程序称为()程序,经编译程序或解释程序翻译后成为()程序.12.程序设计语言一般分为三类()、()、()。
13.数控机床是计算机在()方面的应用,邮局自动分拣信件是计算机在()方面的应用.14.现代计算机主要采用()结构作为计算机硬件之间的连接方式。
15.用二进制代码表示的计算机语言称为(),用助记符编写的语言称为()。
二、选择题1.“从中间开始"设计的“中间"目前多数在()A.传统机器语言机器级与操作系统机器级之间B。
传统机器语言机器级与微程序机器级之间C.微程序机器级与汇编语言机器级之间D。
操作系统机器级与汇编语言机器级之间2.在计算机系统设计中,比较好的方法是()A .从上向下设计B.从下向上设计C .从两头向中间设计D .从中间开始向上、向下设计第二章1。
R-S触发器逻辑框图是什么?它有几个输入端各是什么?它有几个输出端?各是什么?2。
D触发器逻辑框图是什么?它有哪几个同步输入端?哪几个异步输入端?它有哪几个输出端?3。
二—四译码器的工作原理?(如图)4。
并行四位寄存器的工作原理?(如图)1. 三态开关的工作原理: D IN D OUTE5.半加器本位和逻辑表达式6. 半加器进位逻辑表达式。
7.全加器本位和逻辑表达式是: 8 。
全加器向高位进位的逻辑表达式:9.SN74181是什么芯片?作什么运算取决哪些引脚? 10. SN74182是什么芯片?作用?11.用SN74181芯片组成一个16位运算器,片内并行进位片间串行进位。
信息工程学院实验报告
1、熟悉掌握对RAM 的操作。
2、学习汇编程序的编写。
3、熟悉ZY15MicInt12BB 微机原理及接口试验箱使用方法。
实 验 环 境:
Windows 7 湖北众友
实 验 内 容 及 过 程: 1、首先在ZY15MicInt12BB 微机原理及接口实验箱中按实验要求连接好电路,再将试验箱与PC 机连接。
接线如图T2-1所示:
图T2-1
2、打开试验箱电源,带液晶模块稳定显示“NOW COM IS STANDBY ”后,再打开湖北众友软件,选择端口号。
如图T2-2所示:
图T2-2
3、打开实验文件,在湖北众友上,然后在“编译”菜单下选择“编译、连接、装载”,若一切无误,系统将提示装载成功。
如图4。
最后再点击连续运行,就能在实验箱上看
到结果了。
如图T2-3和图T2-4所示:
图T2-3
图T2-4
实验结果及分析:
装载、编译、链接文件,运行程序,在实验箱的液晶上会根据编写的程序内容显示字母A到字母Z,具体如图T2-5所示:
图T2-5。
计算机专业基础综合计算机组成原理(存储器层次结构)历年真题试卷汇编2(总分:88.00,做题时间:90分钟)一、单项选择题(总题数:25,分数:50.00)1.下列叙述中____是正确的。
【重庆大学2000年】(分数:2.00)A.主存可由RAM和ROM组成√B.主存只能由ROM组成C.主存只能由RAM组成D.主存只能由SRAM组成解析:解析:考查主存的构成。
2.可编程的只读存储器____。
【中南大学1998年】(分数:2.00)A.不一定是可改写的√B.一定是可改写的C.一定是不可改写的D.以上都不对解析:解析:考查可编程的只读存储器。
一次可编程只读存储器一旦写入后,内容就无法改变,故可编程的只读存储器不一定是可改写的。
3.下面说法正确的是____。
【南京航空航天大学2000年】(分数:2.00)A.ROM不用刷新,但断电后存储信息消失B.半导体RAM信息可读可写,且断电后仍能保持记忆C.静态和动态RAM都是易失性存储器,断电后存储信息消失√D.动态RAM属非易失性存储器,而静态RAM存储信息断电后信息消失解析:解析:考查DRAM、SRAM与ROM的区别。
ROM断电后存储信息不消失,故A错;半导体RAM(包括SRAM 与DRAM)中的信息可读可写,但断电后信息丢失,故B、D错。
4.下述说法中____是正确的。
【中南大学1998年】(分数:2.00)A.EPROM是可改写的,因而也是随机存储器的一种B.EPROM是可改写的,但它不能作为随机存储器√C.EPROM只能改写一次,故不能作为随机存储器D.以上都不对解析:解析:考查EPROM。
5.某机字长16位,主存容量为16MB,若按字编址,其寻址范围为____。
【华中科技大学2005年】(分数:2.00)A.0~4M一1B.0~2M一1C.0~8M—1 √D.0~10M—1解析:解析:考查寻址范围。
机器字长为16位,所以按字编址即按16位编址。
16MB=8Mx2B=8M×16位=8MW,所以其寻址范围是0~8M一1。
一、填空题1、微机系统由(硬件系统)和(软件系统)两部分组成。
2、总线按传输的信息种类可分成(数据)、(地址)和(控制)三种。
3、模型机CPU主要由(运算器)、(控制器)和(寄存器)三部分组成。
4、指令格式通常由(操作码)和(操作数)组成。
5、指令的执行分(取指)和(执指)两个阶段。
6、8086有( 20 )位地址线,存储器容量为(1M )B。
7、8086CPU 内部组成结构从功能上讲,可分为_BIU和___EU______两部分。
8、8086/8088的四个段寄存器为___DS_____、___ES_____、___SS____、__CS_______9、用来存放CPU状态信息的寄存器是_____FLAG______。
10、用来存放指令地址的寄存器是——IP———。
11、AX寄存器可分成____AH___和___AL____两个8位寄存器。
12、8086的16位标志寄存器FLAGS中OF=1表示运算结果溢出,ZF=1表示运算结果为零。
PF=0表示运算结果的低8位中1的个数为___奇数____ 。
13、8086的16位标志寄存器FLAGS中IF=1表示CPU允许中断,TF=1表示CPU进入单步工作方式。
14、一般一个总线周期可分为___T1____ 、___T2____ 、__T3_____和_____T4__状态。
15、8086CPU的1M内存由__两_____块512KB 存储体组成。
16、地址4000H:0300H,其物理地址是40300H,段地址是4000H,偏移地址是0300H。
17、8086存储器管理采用__分段管理_____技术。
18、8086CPU引脚信号中中断请求两个信号名称为____INTR__和___NMI____ 。
13、8086CPU信号中控制地址锁存器信号是__ALE_____ 。
20、8086CPU信号中控制数据收发器的信号是__/DEN____ 。
21、8086信号中区分存储器和I/O操作的信号是___M/IO____ 。
汇编语言重点知识总结汇编速查手册汇编语言总结概要寄存器与存储器1. 寄存器功能. 寄存器的一般用途和专用用途. CS:IP 控制程序执行流程. SS:SP 提供堆栈栈顶单元地址. DS:BX(SI,DI) 提供数据段内单元地址. SS:BP 提供堆栈内单元地址. ES:BX(SI,DI) 提供附加段内单元地址. AX,CX,BX 和CX 寄存器多用于运算和暂存中间计算结果,但又专用于某些指令( 查阅指令表)。
. PSW 程序状态字寄存器只能通过专用指令( LAHF, SAHF) 和堆栈(PUSHF,POPF) 进行存取。
2. 存储器分段管理. 解决了16 位寄存器构成20 位地址的问题. 便于程序重定位. 20 位物理地址= 段地址* 16 + 偏移地址. 程序分段组织: 一般由代码段, 堆栈段,数据段和附加段组成, 不设置堆栈段时则使用系统内部的堆栈。
3. 堆栈. 堆栈是一种先进后出的数据结构, 数据的存取在栈顶进行, 数据入栈使堆栈向地址减小的方向扩展。
. 堆栈常用于保存子程序调用和中断响应时的断点以及暂存数据或中间计算结果。
. 堆栈总是以字为单位存取指令系统与寻址方式1. 指令系统. 计算机提供给用户使用的机器指令集称为指令系统, 大多数指令为双操作数指令。
执行指令后,一般源操作数不变,目的操作数被计算结果替代。
. 机器指令由CPU 执行,完成某种运算或操作,8086/8088 指令系统中的指令分为6 类: 数据传送,算术运算,逻辑运算,串操作,控制转移和处理机控制。
2. 寻址方式. 寻址方式确定执行指令时获得操作数地址的方法. 分为与数据有关的寻址方式(7 种) 和与转移地址有关的寻址方式(4)种。
. 与数据有关的寻址方式的一般用途:(1) 立即数寻址方式--将常量赋给寄存器或存储单元(2) 直接寻址方式-- 存取单个变量(3) 寄存器寻址方式--访问寄存器的速度快于访问存储单元的速度(4) 寄存器间接寻址方式--访问数组元素(5) 变址寻址方式(6) 基址变址寻址方式(7) 相对基址变址寻址方式(5),(6),(7) 都便于处理数组元素. 与数据有关的寻址方式中,提供地址的寄存器只能是BX,SI,DI 或BP . 与转移地址有关的寻址方式的一般用途:(1) 段内直接寻址-- 段内直接转移或子程序调用(2) 段内间接寻址-- 段内间接转移或子程序调用(3) 段间直接寻址-- 段间直接转移或子程序调用(4) 段间间接寻址-- 段间间接转移或子程序调用汇编程序和汇编语言1. 汇编程序. 汇编程序是将汇编语言源程序翻译成二进制代码程序的语言处理程序, 翻译的过程称为汇编。
实验一熟悉ADEK单片机教学实验系统一、实验目的1.熟悉 ADEK 单片机教学实验系统和仿真器的结构和功能。
2.了解如何安装 51MINI 仿真器驱动程序。
二、ADEK 单片机教学实验系统组成图 1-1 AEDK 单片机教学实验系统外观图如图 1-1 所示, ADEK-EAT598 单片机教学实验系统遵循了模块化的设计思路,有丰硕的接口,而且具有良好的扩展性,以下为组成模块和利用的要紧芯片。
1.步进电机2.直流电机3.温度操纵( DS18B20、热敏电阻 B3470)4.模数转换( ADC0809)5.串行实验区( EEPROM X25045、 AT24C08、时钟芯片 HT1380、数模转换 TLC5615、模数转换 TLC1543)6. RAM( HM62256)7. ROM( M27C512)8.地址译码( 74LS138)9.数模转换( DAC0832)10.仿真机通信口:原厂仿真器的串口通信口,这部份功能已不用。
11.串并转换( 74LS164)12.频率源( CD4020)213.扩展输出( 74LS273)14.扩展输入(74LS244)15.电源开关16.液晶显示(MSC-G12232DYEW-7N)17.语音录放(ISD1730)18.扩展通信口(D8251、HIN232)19.八位开关20.交通灯21.单脉冲(HD74LS240)22.继电器(946H-1C-5D)23.电辅音调(9012)24.蜂鸣器25.光耦(TLC521)26.电位器27.点阵显示28.PS2 接口29.并行接口(8255)30.键盘显示(8279)31.扩展实验区32.打印机接口33.单片机核心板(EAT598_31)34.带USB 接口的51MINI 仿真器三、实验内容1.熟悉整个实验箱的硬件资源。
2.利用51MINI仿真器连接电脑,在电脑的设备治理器中可找到以下图所示的COM口。
实验二Keil集成开发环境练习一、实验目的1.把握开发环境Keil的安装方式。
汇编指令⼤全以下都是作者在学习IMX6ULL开发板的时候⽤到的指令。
16位数据操作指令名字功能BIC 按位清零(把⼀个数跟另⼀个⽆符号数的反码按位与)CPS 直接修改CPSR寄存器的bit位。
即在特权模式下(除了⽤户模式,剩余的模式都是特权模式),可以通过CPS指令直接修改CPSR寄存器bit位,让处理器进⼊不同的模式。
例如:cps #0x13 就是把CPSR寄存器的bit4-0更改为0x13,让处理器进⼊SVC模式。
cps #0x12 就是把CPSR寄存器的bit4-0更改为0x12,让处理器进⼊IRQ模式。
POP 从堆栈中弹出若⼲的寄存器的值, 出栈。
举个例⼦: 如果我使⽤了pop ax指令后,返回到ax中的数据是5685H。
这时在堆栈段⾥ 5685 还存在吗?堆栈⾥以前存放5685的地⽅还有数据吗?有数据,数据还是5685吗? 答案是:5685被从栈中弹出,已不再栈中,原本存放5685的地⽅依然存在为5685,但他不再属于栈,所以5685已不再栈中。
PUSH 进栈SUB 减法(Subtraction)不带借位的减法指令。
——————ADD 加法 add和sub指令同mov⼀样,都有两个操作对象,它们也可以有以下⼏种形式: add 寄存器,数据 add ax,9 把ax中的值加9放到ax中。
add 寄存器,寄存器 add ax,bx 类似 add 寄存器,内存单元 add ax,[0] 类似 add 内存单元,寄存器 add [0],ax 类似 sub 寄存器,数据 sub ax,9 把ax中的值减9放到ax中。
sub 寄存器,寄存器 sub 寄存器,内存单元 sub 内存单元,寄存器MUL 乘法(Multiplication)两个数位数⼀样,即都为8 | 16 | 32位。
乘数和被乘数的⼤⼩必须保持⼀致,乘积的⼤⼩则是它们的⼀倍。
这三种类型都可以使⽤寄存器和内存操作数,但不能使⽤⽴即数:由于⽬的操作数是被乘数和乘数⼤⼩的两倍,因此不会发⽣溢岀。