整理电子元件综合基础Word文件下载.docx
- 文档编号:18271187
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:17
- 大小:43.76KB
整理电子元件综合基础Word文件下载.docx
《整理电子元件综合基础Word文件下载.docx》由会员分享,可在线阅读,更多相关《整理电子元件综合基础Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
子程序
章
文章
程序
语法
拼写,句法,文法
指令,子程序,程序格式及使用规则
技巧
句子正确,文理通顺
指令正确,程序精简,易读性好,结构化好
汇编语言人可以发挥自己的聪明才智学会,计算机如何学?
这是利用汇编语言到机器语言的固定翻译机制实现的。
计算机专家们已编制了一些翻译程序供汇编语言的编程人员使用,这种翻译程序称为“汇编程序”。
3、汇编程序和连接程序
汇编程序是一种计算机软件(系统软件),它能够把人们编写的汇编语言程序(称为源程序,一般以.ASM作为文件扩展名)翻译成机器语言,这种翻译操作称为“汇编”。
不同的计算机有不同的机器语言,因而也需要有不同的翻译器―――汇编程序,MASM.EXE是一种专门用于把8086/8088的汇编语言源程序翻译成相应的机器语言程序的翻译器。
汇编程序还具有语法检查的功能,交给汇编程序进行处理的源程序在翻译之前都必须经过语法检查这一关。
若发现源程序中有违背汇编语言语法的地方,将不进行翻译工作,而是指出错误的位置以及类型。
汇编程序翻译的结果已具备机器语言的形式,称为“目标程序”,一般以.OBJ作为文件扩展名。
但是,目标程序还不能直接交给计算机去执行,它还需要通过连接程序(LINK.EXE)的装配才具备可执行的形式,装配结果称为“执行文件”,一般以.EXE作为文件扩展名。
4、汇编语言的构成
汇编语言是较早发明的一种介于自然语言与机器语言之间的程序设计语言。
为了使汇编语言到机器语言的翻译比较简单,汇编语言用大量的语法规则对从指令到程序的书写加以限制。
与后来的高级语言、第四代语言相比,汇编语言更接近于机器语言,用汇编语言编写的源程序还保留了很多机器语言的影子。
比如:
机器指令中的操作码部分在汇编语言中用与该指令的功能相关的一个符号表示,例如加法指令就用ADD表示,数据传送用MOV表示,这类符号称为“助记符”。
对于一个放在内存中的操作数,如果要求编程人员记住每一个操作数在内存中的存放位置是一个巨大的负担。
在汇编语言中,减轻这种负担的方式是用变量存放操作数,程序员只要记住变量的名字即可。
跳转是程序设计中不可避免的一个问题。
在机器语言中,跳转的目的地是用指令所在的位置(即在内存的哪一个字节)来表示的,而汇编语言中的跳转则是在目的地做一个称为“标号”的标记。
除了与机器语言有直接对应关系的助记符,变量,标号外,为了能让汇编程序正确的完成翻译工作,必须要告诉汇编程序变量需要占据多少字节的内存,程序到何处结束,整个程序的第一条指令在什么地方等问题。
因此,源程序中应该有一些告诉汇编程序如何进行翻译操作的“说明”,这类说明在翻译结果中并没有对应的机器代码,所以称为“伪指令”。
指令助记符,数据和存放数据的变量,标号,伪指令以及相应的使用规则构成了汇编语言的全部内容。
5、汇编语言的特点
与机器语言相比,汇编语言易于理解和记忆,编写的源程序可读性较强。
汇编语言中还提供了一些分工协作并相互通讯的方法,可以实现初步的结构化编程。
源程序翻译成机器语言后的执行文件在存储空间,执行速度方面与机器语言编写的程序大致相当。
高级语言和第四代语言在科学计算,事务处理等方面比汇编语言有巨大的优势,但用高级语言编写的程序,在翻译成机器语言后,程序代码冗长,占用存储空间大,执行速度慢。
如果用高级语言来编写接口控制,设备通讯等方面的程序则不太合适,相反这样的情况下汇编语言更容易发挥其长处:
目标程序或执行文件简短,执行速度快,效率高,特别是汇编语言能直接控制计算机的内存和外设,这些特点是高级语言和第四代语言望尘莫及的。
高级语言和第四代语言适合于编写应用软件,对于系统软件,尤其是涉及内存管理,硬件控制方面问题时汇编语言则比较合适。
二、变量
虽然把数据存放在寄存器中使用起来快速、方便,但寄存器的数目很少,能存放的数据量有限,因此大量数据通常是放在内存中的,对于外存中的数据也是需要调到内存中才可以处理的。
问题:
数据放在内存的什么位置?
数据占据了多少字节?
数据超过1个字节时怎么存放?
如何把数据放进去以及如何取出来?
解决方法:
高级语言:
引入变量的概念。
变量的实质就是存放数据的存储区域,根据变量中能够存放的数据的类型和数量,可以确定变量占据存储空间的大小,这就是变量说明。
有些高级语言还允许变量说明的同时在其中放一个初始数据,称为变量的初值。
变量说明后,可以对变量赋值,也可以从变量中取出数据使用。
不论是赋值还是取值,编程时都以变量的名字作为使用变量的方式,并不关心变量究竟在内存的哪个地方。
机器于言:
没有变量,只有内存的地址,读数写数,都需要在指令中明确指出逻辑地址。
如果用机器语言编写程序,编程者直接面对内存地址,并且需要自己安排数据存储的所有细节。
汇编语言:
中介,引入了变量,可以象高级语言一样使用,另一方面又有很明确的变量与内存地址间的对应关系,汇编程序在翻译时为定义的各个变量分配地址,在变量名字与内存地址之间架起了一座连结的桥梁。
因此,在汇编语言中对变量的操作既可以通过变量的名字,也可以直接用变量的地址。
1、变量定义
(1)变量名
一种用来区分不同的存储区域的标识符号,是一种标识符。
是一个或多个符号构成的符号串。
命名规则:
1)可用符号包括字母、数字和特殊符号“?
”、“@”、“$”、“%”、“_”。
2)不允许用数字作为第一个符号。
3)名字的长度没有严格限制,但一般不超过10个符号。
4)最少由一个符号构成,可以是字母、“_”或“@”。
5)汇编语言不区分字母的大小写。
总之,记住基本规定就可以了:
以字母开头的字母数字串
(2)变量定义的方法
变量实质:
存放数据的内存区域,变量定义就是告诉汇编程序,在翻译时从某个地址起预留一定数量的空间,并在其中填上初值,还要建立变量与地址间的对应关系。
所以变量定义是伪指令而不是指令。
格式:
变量名类型初值表
变量名:
类型:
只能是DB,DW,DD,DT,用于说明初值表中的每个数据占几个字节,对应关系如下:
DB:
字节型,每个数据占1个字节
DW:
字型,每个数据占2个字节
DD,DT很少用,不讲。
初值表:
用逗号分隔的若干个数据项,每个数据项的值是变量的一个初值项,占据“类型”规定的字节数,说明变量的初值是多少,也指明了变量占多少字节的存储空间。
注意:
如果初值表需要填写若干个相同的值,可以用下面的形式表示把一个值重复若干次。
重复次数DUP(数据项)
初值表中可以用问号“?
”作为初值,汇编程序翻译时以值0填充。
任何段中都可以写变量定义,也允许指令和变量定义写在一个段中,通常是把程序所用到的所有变量集中在数据段中,而把指令写在代码段。
例题:
说明data段中定义的各变量的类型及初值情况,以及每个变量占据的内存字节数。
DataSEGMENT
D1DB1
D2DW1234H
D3DD12345678H
D4DB‘1’,’2’,’3’(31H,32H,33H)
D5DB‘123’(31H,32H,33H)写法不用而已
D6DB30DUP(0)
D7DB1,3DUP
(2),’3’,-3,1001B
D8DB1,2,3,4,5,6(初指表中数据项很多一行写不完而转行的写法)
DB7,8,9,10
D9DW‘12’,’AB’(32H,31H,42H,41H)
D10DW3-5(补码形式,高地址是FFH,低地址是OFEH)
DataENDS
2、变量内存分配
变量内存分配是指把定义的各个变量安排在段内的什么位置,占多少字节,以及其中的值是多少。
(1)内存图
内存图表示的内容有两个方面,一是存储器,通常由若干叠放在一起的小方框表示,一个小方框代表一个字节。
一般段地址部分省略,只标各字节的偏移地址。
小方框内填的数值表示该字节中的内容。
另一方面,内存图还要表示变量名与偏移地址的对应关系,把变量的名字写在对应的方框的边上。
(2)变量定义与内存分配的关系
掌握目的:
有助于对各种内存型寻值方式的理解和灵活运用。
汇编程序在为变量安排内存时遵照下面的规则:
(1)同一段内的变量具有相同的段地址。
(2)按照段中变量定义的次序,依次对各变量分配偏移地址。
(3)除非有其他伪指令说明,段内的第一个变量被分在偏移地址为0处。
(4)一个变量占据的字节数由其类型和初值表中的项数决定。
(5)除非有其他伪指令说明,一个变量分配完后,紧接着分配下一个变量。
三、伪指令
1.数据定义伪指令
数据定义伪指令主要是完成存储单元分配,数值变量赋值及预置存储空间等工作。
(1)变量定义伪指令
格式:
[变量名]<
定义符>
<
操作数项表>
功能:
定义变量名并为变量分配存储单元,同时将初值赋给相应存储单元。
说明:
变量具有三个属性。
段属性(SEG)变量存放在哪一个逻辑段(DS段或ES段)中。
若在DS段中,则段基值需装入DS中。
偏移量属性(OFFSET)变量在逻辑段中离段起始点的字节数。
类型属性(TYPE)变量所占存储单元的字节数。
定义符是必选项,用于说明操作数项的类型属性。
定义符有:
DB—定义字节,类型为1。
DW—定义字,类型为2。
DD—定义双字,类型为4。
DQ—定义四字,类型为8。
DT—定义十字节,类型为10。
操作数项右以是常数,表达式,字符串,变量和?
,?
用于预留存储空间?
(暂不存入数据)。
操作数项为字符串时,必须用单引号括起,且字符以ASCⅡ码形式存放在存储单元中。
例如:
V1DB20H
V2DW5*100
V3DD12345678H
V4DQ(140+60)/20
V5DW‘CD’,’AB’,?
?
ADR1DDV1
假设V1变量偏移地址为0100H,段基址为8000H,变量的初值和在内存中的分配如图4-13所示。
V120HV544H‘D’
V2F4H43H‘C’
01H2个字节42H‘B’
V378H41H‘A’
56H
34H4个字节
12HADR100HV1的
V40AH01H偏移地址
0000HV2的
0000H偏移地址
00
008个字节
图4-13变量定义存储器分配示意图
(2)重复定义伪指令
DUP(Duplicate)用于重复以定义的一组操作数。
n>
DUP(操作数项表)
对操作数项表内容进行n次重新分配,定义及预置存储单元。
例如:
X1DW4DUP(10H,20H),‘A’
X2DB2DUP(?
,2DUP(‘D’,ODH))
存储分配如图4-14所示。
┇
X110HX2—
20H44H‘D’
10H0DH
10H0DH
20H—
10H44H
20H0DH
41H‘A’44H
0DH
┇
图4-14重复定义存储分配示意图
2.符号定义指令
使用符号定义伪指令是将某些常数,表达式等用一特定符号来表示,从而大大简化程序,这类指令特点不占用内存单元。
(1)等值语句
格式:
〈名字〉EQU〈表达式〉
功能:
为表达式取一个名字,既把表达式的值或符号赋给EQU左边的名字,供以后引用。
说明:
EQU语句的名字不能重复定义。
表达式可以时常数,变量,标号,指令助记符,字符串等。
例如:
CONSTEQU50;
定义常数符号
VAREQUWORDPTRX;
定义变量属性
LABEQUSTRAT;
定义符号
MEQUMOV;
定义指令助计符
CEQUCONST+300;
定义常数表达式
ADIEQU[SI+4];
定义地址表达式
MAX,VAR;
引用
ADDAX,CONST
SUBAX,ADI
等价于:
MOVAX,WORDPTRX
ADDAX,50
SUBAX,[SI+4]
(2)等号语句
〈名字〉=〈表达式〉
与EQU相同。
等号语句可以重复定义,表达式只能是数值表达式。
CONST=20
NUM=10H
CONST=CONST+50
(3)标号定义伪指令
〈名称〉LABEL〈类型〉
给名称定义类型,既同一地址指针赋予两种类型属性。
DARRAYLABELWORD
BARRAYDB20DUP(11H,22H)
SUB1LABELFAR
SUB2PROCNEAR
MOVBX,0
MOVAX,[DARRAY+10H]
ADDAL,[BARRAY+20H]
RET
SRB2ENDP
CALLSUB1;
远调用
CALLSUB2;
近调用
DARRAY和它下面的BARRAY地址实际上是相同的,但属性不同的,DARRAY为字,BARRAY为字节。
SUB1和SUB2都指向同一条指令MOVBX,0,但类型不同,SUB1为FAR,SUB2为NEAR。
3、操作数及运算符
指令语句执行操做的对象是操作数,伪指令语句在汇编时服务的对象也是操作数,操作数可以是常数,变量,表达式等。
(1)操作数
常量操作数
常量在汇编时已有确定的值,在程序运行中,它不会发生变化。
有二种类型常量:
数值常量:
取值类型为二进制(B),八进制(0),十六进制(H),十进制(D)的实型数或整形数。
字符串长量:
有单引号括起的一个或多个字符。
这些字符以ASCII码形式存储在内存中。
适用范围
●适用于立即操作数
如:
ADDAX,1234H
MOVDI,3200H
●存储器操作数的偏移量或初值
MOVAX,[SI+20H]
MOV[BUF],0050H
●伪指令中对变量的定义
如:
V1DB11H
V2DW2233H
V3DD445566H
V4DB‘STRING’
变量操作数
变量是对存储单元的一个数据或数据区的符号表示,这些数据可被程序随时改变。
用变量名对变量进行访问,变量名就是变量的符号地址。
其他有关说明与前面变量定义伪指令相同。
表达式操作数
表达式是由常数,操作数,操作符和运算符组合而成,表达式操作数是以表达式形式出现的操作数,汇编程序对表达式进行计算,将其值作为指令操作数。
它所构成的操作数昌丰富多彩的,如:
MOVAX,VAR+10
(2)、操作数运算符
表达式常以多种运算符来连接操作数,其值是在程序汇编过程中进行计算的,在汇编语言中操作数运算符可分为:
算术运算符,逻辑运算符,关系运算符,数值返回运算符,属性修改运算符。
算术运算符
表4-5列出算术运算符。
表中前二项+,-为单项运算符。
表4-5算术运算符
运算符
格式
功能
+
+<
表达式>
表达式值取正
-
-<
表达式值取负
*
表达式1>
*<
表达式2>
两式相乘
/
/<
两式相除
MOD
MOD<
两式整除取余
两式相加
两式相减
SHR
SHR<
N>
将表达式的值右移N位
SHL
SHL<
将表达式的值左移N位
[]
(2)规划编制机关在报送审批专项规划草案时,将环境影响报告书一并附送。
[表达式2]
下标操作符
+,-,*,/运算中,参加运算的操作数和运算的结果均为整数。
减法可用于两个操作数地址运算,其结果是一个常数,表示这两个变量之间的相距字节数。
报告内容有:
建设项目基本情况、建设项目所在地自然环境社会环境简况、环境质量状况、主要环境保护目标、评价适用标准、工程内容及规模、与本项目有关的原有污染情况及主要环境问题、建设项目工程分析、项目主要污染物产生及预计排放情况、环境影响分析、建设项目拟采取的防治措施及预期治理效果、结论与建议等。
NUM=30*2;
NUM=60
NUM=NUM/8;
NUM=7
NUM=NUM+10;
NUM=11
NUM=-NUM+6;
NUM=-5
表三:
周围环境概况和工艺流程与污染流程;
ORG0050H
VALUE1DB12H,34H,‘NUMBER’
C.可能造成较大环境影响的建设项目,应当编制环境影响报告书VALRE2DW5678H,‘FE’
2)购买环境替代品。
ADDR1EQUVALUE2-VALUE1
ADDR2DWVALUE2-2
(1)规划环境影响评价的分析、预测和评估内容。
逻辑运算符
(一)安全预评价依据表4-6列出逻辑运算符。
表4-6逻辑运算符
(3)生产、储存烟花爆竹的建设项目;
环境影响评价工程师课主持进行下列工作:
格式
功能
三、环境影响的经济损益分析NOT
NOT<
表达式值按位取“反”
AND
AND<
两表达式值按位“与”
OR
OR<
两表达式值按位“或”
XOR
XOR<
两表达式值按位“异或”
逻辑运算符用于对两个整型常量按位作逻辑运算。
一般出现在汇编语句的源操作规数位置上,或EQU语句中。
逻辑运算符和逻辑运算指令有本质上的不同。
前者操作数对象是一具体的整型常数,在汇编时完成逻辑运算,它仅作为指令的某一个操作数或构成操作数的一部分;
而后者是对一个寄存器或存储单元内容,在程序运行时执行逻辑运算。
MOVDX,0AABBH
MOVAX,NOTOFEH;
AX←0FF01H
MOVAL,77HAND0F0H;
AL←70H
MOVBL,77HOROF0H;
BH←0F70H
MOVCL,77HXOR0F0H;
CL←87H
MOVDL,22HAND20H;
DL←20H
XORDH,44HXOR80H;
DH←0C4H
关系运算符
关系运算符表4-7。
表4-7关系运算符
EQ
EQ<
两个表达式值相等为真,否则为假。
NE
NE<
两个表达式值不相等为真,否则为假。
LT
LT<
表达式1<
表达式2为真,否则为假。
LE
LE<
表达式1≤表达式2为真,否则为假。
GT
GT<
GE
GE<
表达式1≥表达式2为真,否则为假。
说明:
关系运算符的对象一定是常量或同一段变量。
若为常量,按无符号数比较;
比较结果为真返回全‘1’,为假返回‘0’。
MOVAX,OEHEQ1110B;
AX←OFFFFH
MOVBX,12HNE34H;
BX←OFFFFH
MOVDX,56HGT55H;
DX←0000H
VARDWNLT2000H;
N<
2000H,VAR为0FFFFH,否则为0。
数值返回运算符
数值返回运算符对变量或标号进行分析,回送其地址属性值(符号地址对应的段基址,偏移
量)或变量特征值(如数据类型值,变量长度,变量元素个数等)。
见表4-8。
表4-8数值返回运算符
SEG
SEG<
变量|标号>
返回变量或标号的段基址。
OFFSET
OFFSET<
返回变量或标号的偏移地址。
LENGTH
LENGTH<
变量>
返回变量元素个数。
SIZE
SIZE<
返回变量所占字节数。
TYPE
TYPE<
返回变量或标号的类型值
说明:
对于使用DUP重复定义的变量,LENGTH运算符返回最外层DUP的给定值。
例如:
K1DB20HDUP(2,4DUP(1,3DUP(0)))
MOVAL,LENGTHK1;
AL←20H
SIZE返回数组变量所占的总字节数,等于LENGTH和TYPE两个运算符返回值的乘积。
段基址为(DS)=6800H
ORG2800H
ARRAYDW50DUP(0AH)
┇
MOVAX,SEGARRAY;
AX←6800H
MOVDS,AX
MOVCX,LENGTHARRAY;
CX←50
MOVSI,SIZEARRAY;
SI←100
M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 电子元件 综合 基础