汇编语言程序设计
汇编语言程序设计

汇编语⾔程序设计第4章汇编语⾔程序设计§4.1 汇编语⾔的模式⼀、汇编语⾔源程序的⼀般模式[Name 模块名][Title 标题][定义宏][定义数据段][定义附加段][定义堆栈段]定义代码段源程序结束中括号括起的部分可以省略,可见在⼀个汇编语⾔源程序中必须要定义代码段,并且必须有源程序结束指令。
⼆、8086汇编语⾔程序的⼀个例⼦Pg90。
§4.2 语句⾏的构成汇编语⾔中的语句⼀般分为两种类型:指令性语句和指⽰性语句。
指令性语句的格式为:[标号:] 助记符 [操作数1[,操作数2]] [;注释]指⽰性语句的格式为:[名称] 助记符 [参数1,参数2,……] [;注释]标号和名称都是编程⼈员根据需要和⼀定的规则任意取的。
也可以认为汇编语⾔的语句⾏是由标记和分隔符(空格)构成。
⼀、标记1.IBM宏汇编的字符集(1)字母(2)数字符(3)特殊字符2.界符⽤于定界⼀个标记的结束或⼀个标记的开始,本⾝具有⼀定的意义。
3.常量出现在汇编语⾔源程序中的固定值称为常量。
(1)数值常量①⼆进制:以字母B结束。
②⼗进制:以字母D或⽆字母结束。
③⼋进制:以字母Q(或O)结束。
④⼗六进制:以字母H结束。
(2)字符常量指⽤单引号或双引号引起的字符或字符串。
4.标识符由程序员⾃⼰建⽴的字符序列(标号或名称)。
⼀个标识符不能超过31个字符,不能以数字开头。
5.保留字汇编语⾔中具有特殊意义的字符序列。
6.注释⼀⾏中分号以后的部分。
⽤于对⼀段或⼀⾏程序进⾏说明,便于阅读和理解。
⼆、符号具有⼀定意义的字符序列。
1.寄存器名2.变量段属性、偏移属性、类型属性3.标号段属性、偏移属性、类型属性4.常数5.其它三、表达式由操作数和运算符组合⽽成的序列。
1.操作数(1)⽴即数(2)寄存器操作数(3)存储器操作数2.运算符(1)算术运算符+、-、*、/、MOD(求余)(2)逻辑运算符AND、OR、NOT、XOR(3)关系运算符EQ、NE、LT、LE、GT、GE结果为“假”时,返回0,结果为“真”时,返回⼆进制全1。
单片机汇编语言程序设计

单片机汇编语言程序设计在当今高科技时代,单片机有着广泛的应用领域,它是一种微型电脑系统,具有集成度高、功耗低等优点。
而单片机汇编语言程序设计则是单片机开发中最基础、最重要的一环。
本文将从基础概念、程序设计流程以及实例分析等方面,全面介绍单片机汇编语言程序设计。
一、基础概念1. 单片机单片机是一种集成度非常高的微型电脑系统,它由微处理器、内存、输入输出设备以及时钟电路等部分组成。
它的主要特点是片内集成度高,体积小,功耗低。
2. 汇编语言汇编语言是一种与机器语言一一对应的低级编程语言,它是用助记符、伪指令和机器指令等表示的,比机器语言更容易理解和编写。
3. 程序设计在单片机领域,程序设计是指利用汇编语言编写单片机程序的过程,目的是为了实现特定的功能。
程序设计需要包括程序编写、调试和优化等环节。
二、程序设计流程1. 确定需求在开始编写程序之前,首先需要明确需求。
根据需要实现的功能,确定程序设计的目标和要求。
2. 构思设计根据需求,进行程序的构思设计。
确定程序的结构,拟定算法和流程图,为后续的编码工作做好准备。
3. 编写代码在进行编写代码之前,需要先熟悉单片机的指令集和编程规范。
然后,根据构思设计的结果,使用汇编语言编写程序代码。
4. 调试测试编写完成代码后,需要进行调试测试。
通过单步执行、布点断点等方式,检查程序是否存在错误,是否能够正确运行。
5. 优化改进在经过测试后,根据实际情况进行优化改进。
可以通过优化算法、减少冗余代码等方式,提高程序的执行效率和稳定性。
6. 文档记录最后,需要对程序进行文档记录。
包括程序的说明、使用方法、注意事项等,方便后续的维护和升级。
三、实例分析以LED 点亮为例,演示单片机汇编语言程序设计的实际操作步骤。
1. 硬件连接将单片机与 LED 灯连接,以 STM32F103C8T6 开发板为例,连接方式如下:- 将 LED 的长脚连接至单片机的 GPIOA.0 引脚。
- 将 LED 的短脚连接至单片机的 GND 引脚。
汇编语言是一种什么程序设计语言

汇编语言是一种什么程序设计语言汇编语言,也称为汇编程序设计语言,是一种低级的程序设计语言,用于编写计算机程序。
它与机器语言一一对应,使用助记符(mnemonics)表示计算机的指令和操作码(opcode),并且能够直接控制计算机硬件。
汇编语言是一种面向机器的语言,与高级语言相比,更加接近计算机底层的指令集和硬件结构。
使用汇编语言编程可以对计算机进行细粒度的控制,使程序在执行效率和内存管理方面具有更高的优势。
与高级语言相比,汇编语言具有以下特点:1. 直接操作硬件:汇编语言充分利用了计算机的底层硬件资源,可以直接访问寄存器、内存地址和输入输出设备等,对硬件资源有较好的掌控能力。
2. 高效性:由于汇编语言可以直接操作硬件,在性能要求较高的场景下,能够比高级语言更加高效地利用计算机的资源。
3. 灵活性:汇编语言具有更高的灵活性,可以编写特定的指令序列来实现特定的功能,适用于一些对实时性要求较高、底层接口较复杂的应用场景。
然而,汇编语言也存在一些局限性和不足之处:1. 可读性差:汇编语言以助记符和操作码为基础,相较于高级语言,可读性较差,需要开发者具备深入的底层计算机知识。
2. 开发效率低:由于汇编语言编写的代码需要详细地指明操作码和寄存器等硬件细节,编写复杂程序会消耗更多的时间和精力。
3. 可移植性差:汇编语言对于不同的计算机和处理器架构存在差异,不同的平台需要编写不同的汇编语言代码,因此可移植性较差。
总结而言,汇编语言是一种底层的程序设计语言,具有直接操作硬件、高效性和灵活性等特点。
但由于可读性差、开发效率低和可移植性差等限制,现在在软件开发领域中使用较为有限,更多地被用于编写底层驱动程序、操作系统和嵌入式系统等领域。
汇编语言程序设计

第4章 汇编语言程序设计
例4.4 显示两位压缩BCD码值(00~99) ,要求不显示前导0。 本例一方面要排除前导0的情况,另一方面 对于全0情况又必须显示一个0,所以形 成了两个双分支结构的程序。
第4章 汇编语言程序设计 DATA SEGMENT BCD DB 04H ; 给出一个BCD码数据 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA BEGIN: MOV AX, DATA MOV DS, AX MOV DL,BCD ;取BCD码 TEST DL,0FFH ;如果这个BCD码是0,则显示为0 JZ ZERO TEST DL,0F0H ;如果这个BCD码高位是0,不显示 JZ ONE MOV CL,4 ;BCD码高位右移为低位 SHR DL,CL OR DL,30H ;转换为ASCII码 MOV AH,2 ;显示 INT 21H
第4章 汇编语言程序设计 ADC MOV MOV MUL ADD DX,0 W+4,DX AX,A B+2 W+2,AX ;部分积2的高16位与进位相加 ;结果保存到从W+4开始的内存单元 ;取被乘数的低16位 ;与乘数的高16位相乘,得到部分积3 ;部分积3的低16位与W+2开始的内存单元相加 ;结果保存在从W+2开始的内存单元 ;部分积3的高16位与W+4开始的内存单元及 ;进位相加,结果保存在从W+4开始的内存单元 ;把进位值保存在从W+6开始的内存单元 ;取被乘数的高16位 ;与乘数的高16位相乘,得到部分积4 ;部分积4的低16位与W+4开始的内存单元相加 ;结果保存在从W+4开始的内存单元 ;部分积4的高16位与W+6开始的内存单元及 ;进位相加,结果保存在从W+6开始的内存单元
汇编语言程序设计实验要求

汇编语言程序设计实验要求一、实验目的1.理解计算机的基本组成结构和运行原理;2.掌握汇编语言的基本语法和应用;3.学会使用汇编语言设计并实现简单的程序;4.培养分析和解决问题的能力。
二、实验内容根据实验的具体要求,设计并实现汇编语言程序,要求程序的功能和执行效果符合实验要求。
三、实验要求1.完成实验报告,并按照实验报告模板的要求编写。
2.实验过程中能提出并解答问题的,要及时记录下来。
3.实验过程中发现的问题要及时上报和解决。
4.保持实验室设备的安全性和完好性。
四、实验步骤1.紧密结合课程内容,理清实验的基本思路和需求。
2.设计程序的框架和算法,明确每个步骤的功能和实现方法。
3.编写汇编语言程序的代码,注意代码的规范性和可读性。
4.进行程序的编译和调试,确保程序能够正确运行并得到正确的结果。
5.运行程序,观察程序的执行过程和结果是否符合设计要求。
五、实验评分标准1.实验报告的撰写质量(包括格式、内容、语言表达等)占总分的30%。
2.汇编语言程序的设计和实现质量占总分的50%。
3.程序的运行效果和正确性占总分的20%。
六、实验注意事项1.在编写汇编语言程序时,要注意程序的可读性和可维护性。
2.在程序的编译和调试过程中,要保持对程序的追踪和记录。
3.注意程序的输入和输出的正确性和合法性。
4.在实验过程中,要积极与实验指导教师和同学之间进行交流和讨论。
以上就是汇编语言程序设计实验的要求。
通过这门实验课程的学习和实践,我们能够更加深入地了解计算机体系结构和汇编语言的基本原理和应用,从而为我们今后的学习和工作打下坚实的基础。
希望同学们在实验中能够认真学习和探索,通过实践提高自己的动手能力和问题解决能力。
第4章 汇编语言程序设计

因此, 因此,对例子中的存储器地址作如下运 算: SUM+2 CYCLE-5 NOT_DONE-GO 是有效的表达式。 是有效的表达式。而 SUM-CYCLE
(2)逻辑运算符 逻辑运算符是按位操作的AND、OR、 、 逻辑运算符是按位操作的 、 XOR和NOT。 和 。 1010 1010 1010 1010B AND 1100 1100 1100 1100B=1000 1000 1000 1000B 1100 1100 1100 1100B OR 1111 0000 1111 0000B=1111 1100 1111 1100B NOT 1111 1111 1111 1111B=0000 0000 0000 0000B
ASSUME CS:MY_CODE, ;规定 和DS 规定CS和 : 的内容 DS:MY_DATA : PORT_VA1 EQU 3 ;端口的符号名 GO: MOV AX, MY_DATA ;DS : 初始化为MY_DATA 初始化为 MOV DS, AX MOV SUM, 0 ;清SUM单元 单元
变量可以具有以下几种寻址方式: 变量可以具有以下几种寻址方式: ① 直接寻址 ② 基址寻址 变址(索引) ③ 变址(索引)寻址 ④ 基址变址寻址
2.运算符(Operators) .运算符( ) 算术运算符( Operators) ① 算术运算符(Arithmetic Operators) 逻辑运算符( Operators) ② 逻辑运算符(Logical Operators) 关系运算符( Operators) ③ 关系运算符(Relational Operators) 分析运算符( Operators) ④ 分析运算符(Analytic Operators) 合成运算符( Operators) ⑤ 合成运算符(Synthetic Operators)
第四章-汇编语言程序的设计

第四章汇编语言程序设计本章的汇编语言程序设计的主要容有:汇编语言程序设计概述、汇编语言程序的结构形式、汇编语言的伪指令。
(一个单片机应用系统和其它计算机系统一样,在完成一项具体工作的时候,它要按照一定的次序,去执行操作,这些操作实际上就是由设计人员,以单片机能够接受的指令编制的程序,那么无论计算机也好,单片机也好,实际上编制程序的过程,就是用计算机来反映设计者的编程思想,那么这一章中,我们将向大家介绍怎样使用单片机指令系统来编制一些应用程序。
在介绍之前,我们还是来学习汇编语言的一些基础知识)4.1 汇编语言程序设计概述1、计算机的汇编语言以助记符表示的指令,每一条指令就是汇编语言的一条语句。
(汇编语言程序设计实际上就是使用汇编指令来编写计算机程序。
汇编语言的语句有严格的格式要求)2、汇编语言的语句格式MCS-51汇编语言的语句格式表示如下:[<标号>]: <操作码> [<操作数>]; [<注释>]标号:指令的符号地址,有了标号,程序中的其它语句才能访问该语句。
①标号是由1~8个ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。
②不能使用汇编语言已经定义了的符号作为标号,如指令助记符、伪指令记忆符以及寄存器的符号名称等。
(同一个标号在程序中只能定义一次,不能重复定义;一条语句可以有标号,也可以没有标号,所以是否有标号,取决于程序中是否需要访问该语句。
)操作码:规定语句执行的操作容,操作码是以指令助记符表示的,是汇编指令格式中唯一不能空缺的部分。
操作数:给指令的操作提供数据或地址。
注释:是对语句或程序段的解释说明。
(在单片机中,这四个部分怎么加以区分呢?使用分界符)分界符(分隔符):用于把语句格式中的各部分隔开,以便于编译程序区分不同的指令段。
冒号(:)用于标号之后空格()用于操作码和操作数之间逗号(,)用于操作数之间,分割两个以上的操作数分号(;)用于注释之前。
第4章 单片机汇编语言程序设计

RO 20HBCMDH BCDL
SWAP A ORL A, #30H MOV 21H, A SJMP $
;BCDH数送A的低4位 21 0011
;完成转换 @R0 ;存数
H22HB0C001D0HBCD 01000L
END
回目录 上页 下页
方法1小结:
以上程序用了8条指令,15个内存字节,执行时间为9个 机器周期。
21 0011BCDH H22H0011BCDL
回目录 上页 下页
程序:
ORG 1000H
MOV R0, #22H ;R0 22H MOV @R0,#0 ; 22H 0 MOV A, 20H ;两个BCD数送A
A
B00C01D01H0BB0CC0D0DHL
XCHD A, @R0 ;BCDL数送22H ORL 22H, #30H ;完成转换
例4-7:设30H单元存放的是一元二次方程ax2+bx+c = 0
根的判别式△= b2 – 4ac的值。
试根据30H单元的值,编写程序,
判断方程根的三种情况。
在31H中存放“0”代表无实根,
存放“1”代表有相同的实根,
存放“2”代表两个不同的实根。
解:△为有符号数,有三种情况,这是一多重分支程序
即小于零,等于零、大于零。
R3
R2
回目录 上页 下页
程序:
ORG 1000H CLR C CLR A SUBB A, R0 MOV R2, A CLR A
SUBB A, R1 MOV R3 , A SJMP $ END
;CY 0
;A 0
;低字节求补
;送R2
;A清零 R3 0000
;高字节求补 0000
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言程序设计课程介绍1.属于低级语言的程序设计2.硬件类课程和操作系统先行课3.软件开发的一个组成部分(加密解密、逆向工程、有害代码的分析防治)4.高级语言程序设计的扩展(硬件资源的管理、驱动等)5.对计算机专业:专业基础课、必修课第一章汇编语言基础知识§1.1计算机语言基本概念一、机器语言:(0、1代码)1.机器指令:是指挥计算机完成某一基本操作的命令,是由硬件电路设计决定的,也叫硬指令。
由操作码和地址码组成。
2.指令系统:每台计算机所特有的、全部指令的集合构成该CPU的指令系统。
3.机器语言程序:机器指令的集合构成了机器语言,用机器语言编写的程序就是机器语言程序。
4.特点:计算机能直接识别,执行速度快,但难于记忆、识别和编写。
二、汇编语言:1.汇编指令:用便于记忆、并能描述指令功能的符号表示的机器指令。
2.汇编程序:就是把汇编语言源程序翻译成机器语言程序的一种系统软件。
3.汇编语言:汇编指令、伪指令、宏指令和汇编程序一起组成了汇编语言。
4.特点:汇编指令与机器指令一一对应,相对机器语言易于理解、掌握。
汇编语言直接面向机器,用汇编语言编制的程序简洁、快速。
三、高级语言:1.高级语言:机器语言和汇编语言以外的程序设计语言统称高级语言。
2.特点:其特点是更加接近自然语言和惯用的数学表达形式,与计算机硬件结构无关,因而便于使用,便于交流和推广。
高级语言编程效率高,但运行效率低。
3.高级语言需要使用编译程序和解释程序将源程序翻译成机器语言程序,然后交计算机执行。
§1.2数据表示与运算一、位计数制:1.位权表示法:每位的位权与该位的数值相乘后相加得到该数的数值。
2.十进制:逢十进一,用0、1、2、3、4、5、6、7、8、9十个数码表示。
(D)二进制:逢二进一,用0、1两个数码表示。
(B)八进制:逢八进一,用0、1、2、3、4、5、6、7八个数码表示。
(Q)十六进制:逢十六进一,用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数码表示。
(H)二、不同数制之间的转化:1.非十进制数转化为十进制:1011100.1011B=1×26+0×25+1×24+1×23+1×22+0×21+0×20+1×2-1+0×2-2+1×2-3+1×2—4=92.6875D 1001.2Q=1×83+0×82+0×81+1×80+2×8-1A031.2H=10×163+0×162+3×161+1×160+2×16-1=41009.125D2.十进制转化为非十进制数:十进制数转化位二进制数:整数部分:除2取余,倒序排列得到的整数。
2 13 (1)2 6 02 3 (1)2 1 (1)013D=1101B小数部分:乘2取整,顺序排列得到的整数。
0.8125× 21 .6250× 21 .25× 20 .50× 21 .00 0.8125D=0.1101十进制数转换为十六进制数和八进制数的方法与转换为二进制数的方法类同。
3.十六进制数与二进制数之间的转换:16=24,所以每4位二进制数可以用一位十六进制数表示,或者说每一位十六进制数可以表示成4位二进制数。
C B 9 A1100 1011 1001 1010CB9AH=11001011100110100111 0101 1011 11117 5 B F111010*********B=75BFH4.八进制数与二进制数之间的转化与十六进制数与二进制数之间的转换方法相同,只是三位二进制数表示成一个八进制数。
三、数据的表示:●数值数据可以用不同的码制进行表示,常用的有原码、反码和补码。
1.原码正数原码:符号位为0,数值位照抄。
负数原码:符号位为1,数值位照抄。
例:X=+25=+00011001B [X]原=00011001BX= -25= -00011001B [X]原=10011001B2.反码正数反码:符号位为0,数值位照抄。
负数反码:符号位为1,数值位取反。
例:X=+25=+00011001B [X]反=00011001BX= -25= -00011001B [X]反=11100110B3.补码:为了将减法运算变成加法来做,有符号数在计算机内一律采用补码表示。
正数补码:符号位为0,数值位照抄。
负数补码:符号位为1,数值位取反加一。
例:X=+25=+00011001B [X]反=00011001B [X]补=00011001BX= -25= -00011001B [X]反=11100110B [X]补=11100111B●BCD码:解决十进制数在计算机内部的表示。
BCD码规定用四位二进制数表示一位十进制数。
对多位十进制数,只要把每一位十进制数分别表示为四位二进制数即可。
●ASCII码:解决字母、符号在计算机内部的表示。
基本ASCII码(标准ASCII码)用七位二进制数表示一个符号(共128个)。
用字节保存最高位为0。
●定点数与浮点数:四、计算机中数的运算:1.二进制数的算术运算与十进制运算相同,只不过是逢2进1,借1当2。
加法减法乘法0+0=0 0-0=0 0×0=00+1=1 0-1=1 0×1=01+0=1 1-0=1 1×0=01+1=10 1-1=0 1×1=12.十六进制算术运算:与十进制运算相同,但①逢16进1,借1当16;②注意运算结果如为A,B,C,D,E,F,不能写成10,11,12,13,14,15。
3.二进制数的逻辑运算(1)与运算(AND;∧):1∧0=0 1∧1=1 0∧0=0 0∧1=0(2)或运算(OR;∨):1∨0=1 1∨1=1 0∨0=0 0∨1=1○+(3)非运算(NOT;—):0=1 1= 0(4)异或运算(XOR;⊕)1○+0=1 1○+1=0 0○+0=0 0○+1=1注意:逻辑运算是按位运算。
4.补码的运算:(1)十进制二进制23 00010111+ 36 + 0010010059 00111011(2)36 00100100+ (-23)+ 1110100113 (进位1)00001101(3)23 00010111+ (-36)+ 11011100-13 11110011(4)(-36)11011100+ (-23)+ 11101001-59 (进位1)11000101§1.3 8086/8088系统结构8086:1978年推出;内外数据总线16位;地址总线20位;寻址范围1MB;主频5MHz。
8088:1979年推出;内部数据总线16位;外部数据总线8位;其余基本同8086,被称为准16位CPU。
一、8086/8088 CPU的内部结构:8086 CPU按功能可分为两大部分:总线接口单元BIU和执行单元EU。
1.总线接口单元BIU:总线接口单元BIU是8086 CPU同存储器和I/O设备之间的接口部件,负责对全部引脚的操作,,它的具体任务是:负责从内存单元中预取指令,并将他们送到指令队列缓冲器暂存;CPU执行指令时,总线接口单元要配合执行单元,从指定的内存单元或者I/O端口中取数据传送给执行单元,或者把执行单元的处理结果传送到指定的内存单元或I/O端口中。
总线接口单元BIU由20位地址加法器、4个段寄存器、16位指令指针、指令队列缓冲器和总线控制逻辑电路等组成。
(1)地址加法器和段寄存器:8086 CPU内部寄存器都是16位的,为实现20条地址线1MB寻址,它用专门的地址加法器将有关段寄存器的内容(段起始地址)左移4位后,与偏移地址相加,形成一个20位的物理地址,以对存储单元寻址。
如书P9图1-3。
(2)16位指令指针IP:指令指针IP是用来存放下一条待执行指令在代码段中的偏移地址。
程序运行中,IP 的内容由BIU自动修改,使它总指向下一条要取的指令在现行代码段的偏移地址用户不能直接访问IP,但可通过某些指令修改它的内容。
如转移指令。
(3)指令队列缓冲器:当EU执行指令,并不占用总线时,BIU会进行预取指令,将取得的指令按先后顺序存入一个6字节的指令队列寄存器中,该队列寄存器遵循“先进先出”原则,并按顺序由EU 执行。
(4)总线控制逻辑电路:总线控制逻辑电路将8086 CPU的内总线和外部总线相连,是8086 CPU与内存单元或I/O端口进行交换数据的通道。
它包括16条数据线、20条地址线和若干控制总线。
2.执行单元EU:执行单元EU包含一个16位的运算器ALU、8个16位的寄存器、一个16位的标志寄存器FLAGS、一个数据暂存寄存器和执行单元控制电路。
(1)算术逻辑运算单元ALU:它是一个16位的运算器,可用于8/16位二进制算术和逻辑运算,也可按指令的寻址方式计算16位偏移量。
(2)标志寄存器FLAGS :它是一个16位的运算器,用来反映CPU 运算状态和存放某些控制标志。
(3)数据暂存寄存器:它协助ALU 完成运算,暂存参加运算的数据。
(4)通用寄存器组:它包括4个16位数据寄存器AX 、BX 、CX 、DX 和4个 16位的指针与变址寄存器SP 、BP 、SI 、DI 。
(5)EU 控制电路:它负责从BIU 的指令队列缓冲器中取指令,并对指令译码,根据要求向EU 内部各部件发出控制命令。
二、8086 CPU 的寄存器组织:8086 CPU 内部共有14个寄存器。
包括4个通用寄存器,4个指针与变址寄存器,4个段寄存器,1个指令指针寄存器,1个标志寄存器。
(1)通用寄存器:AX —累加器 BX —基地址寄存器 CX —计数寄存器 DX —数据寄存器通用寄存器又称为数据寄存器,16位寄存器也可当8个8位寄存器使用。
多数情况下通用寄存器是在算术和逻辑运算指令中用来存放算术逻辑运算的源/目的操作数。
(2)段寄存器:CS —代码段段寄存器 DS —数据段段寄存器 ES —附加段段寄存器 SS —堆栈段段寄存器8086 CPU的各种寄存器都是16位的,所以不能直接1MB空间,因此采用分段分段寄存器,,即8086用一组段寄存器将这1MB存储空间分成若干逻辑段,用4个16位的段寄存器分别存放各个段的起始地址(又称段基址)。
8086的指令能直接访问这4个段寄存器。
寻址时根据给出的偏移地址加上段基址左移4位的值,实现20位地址。
CS:表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移地址由IP提供;DS:指示当前程序使用的数据所存区段的最低地址;ES:指出当前程序使用附加段地址的位置,该段一般用来存放原始数据或运算结果;SS指定当前堆栈的底部地址。