




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇编语言概述
~、概述
1.高级语言与汇编语言比较
高级语言:语句汇编语言:指令
变量说明/史义分配寄存器
inty,a=25,b=3,c=76;分配存储单元
给变量赋值数据传遹
y=2(a+b)-c
2.汇编程序结构
数据段
堆找段
代码段
第四章汇编语言
示例:y=2(a+b)-c
;设置数据段
DATASEGMENT
ADB25;数据A
BDB3;数据B
CDB76;数据C
YDB?■;存放结果
DATAENDS
;设置堆栈段
STACK1SEGMENTPARASTACK
DW20HDUP(O)
STACK1ENDS
第四章汇编语言
示例:
;设置代码段
COSEGSEGMENT
ASSUMECS:COSEG,DS:DATA,SS:STACK1
START:MOVAX,DATA;装填段寄存器DS
MOVDS,AX
MOVAL,A;取数据A
ADDAL,B;计算(A+B)
SALAL,1;计算2(A+B)
SUBAL,C;计算2(A+B)-C
MOVY,AL;存结果
;结束用户程序,返回操作系统
MOVAH,4CH
INT21H
COSEGENDS
ENDSTART
第四章汇编语言
汇编语言与机器语言
•汇编语言:
•是汇编格式指令,伪指令的集合及其表示,使用这些指
令的一组规则。
・机器语言:
•用二进制编巧的机器指令的集合及一组使用规则,它是
CPU能直接识别的唯一语言。
•MOVDS,AX汇编语言
•8ED8机器语言(目标代延J
—ucs:017MOU
0C0F:0000B80A0CMOUAX,砒。A
0C0F:00038EDSMOUDS.AX
0C0F:0005A00000ADDAL.[0000]
0C0F:000802060100SHLAL.[00011
0C0F:000CD0E0SUBfiL.l
0C0F:000E2A060200HOUAL,[0002]
0C0F:0012A20300MOU[0003AL
0C0F:0015B44CINTAH,4C
0C0F:0017CD2121
第四章汇编语言
汇编语言与目标代吗的对应
地
数据A址DO}SALAL,1
数据B增EO^
大
数据C方
数据D向
>SUBAL,C
Y
MOVAX,DATA
aMOVY,AL
0?
MOVDS,DXB4LMOVAH,4CH
4C
CDLINT21H
MOVAL,A
ADDAL,B
第四章汇编语言
汇编语言特点
口与机器语言相关
效率高
□编写源程序繁琐
□调试困睢
汇编语言的主要应用场合:
C1J程序执行占用较短的时间,或者占用较小存储余量的场合。
(2)程序与计算机硬件密切相关,程序直接控制硬件的场合。
C3J需提高大型软件性能的场合。
(4)没有合适的高级语言的场合。
第四章汇编语言
二、汇编语言语句种类
语句种类
指令语句:又叫可执行语句,在汇编时产生一个
目林代码,对应机器的一种操作。
伪指令语句:又叫命令语句。用于指示汇编程序
如何汇编源程序,没有目标代码与之对应。
宏指令语句:由用户自定义的指令。r指令的疔
展)
皿阳备UM理8啊/第四章汇编语言
二、汇编语言语句格式
・格式:
名字操作符操作教;注希
[标号:]助记符[操作教L操作教]心注释]
[名字]走义符[参数,…,参教][;注释]
•命名规则:
可以用?,@」数室和美文字符。
名字的第一个字符不能是教字。
名字的长度不受F艮制,但只有箭'31个字符有效。
不允许用保留字作名字(指令,伪指令,寄存器名等)o
第四章汇编语言
指令语句:[标号:]肋记符[操作教L操作教]][;注斡]
1、标号:标号是机器指令语句存放地址的符号表示,
代表该指令目标代码的第一个字节地址,后面必须紧
跟冒号“:”O
2.指令助记符:指令肋记符为语句的核心成分,表
示了该语句的操作类型。“MOV”
3.操作教:操作教表示指令助记符的操作对象。
4,注羚:注绛均以分号开始,它可占~行或多行,
~般放^在~条语句的后面。
第四章汇编语言
伪指令语句:[名狗定义符[参数,…,参数][;注译]
L名字(符号名):伪指令语句的一个可选项,空格
表示结束,不得使用冒号。
2、定义符(伪指令符):指定汇编程序要完成的具体
操作,如数据定义伪指令DB、DW、DD,段定义伪指
令SEGMENT,假定伪指令ASSUME等。
3.参教(操作教):伪指令后面的操作教可以是常教、
字符串、变量、表达式等,其个数由具体的伪指令决
定,各个操作数之间必须以“退号”分隔。
4.注样:伪指令的注绛必须以'”开始,其作用同
指令语句中的注绛部分。
第四章汇编语言
三、符号定义语句
1.等值语句
•格式:符号EQU表达式
表达式:常数或数值表达式
地址表达式
变量或标号
CONSTEQU10
ADRIEQUDS:[BP+14H]
ADR2EQUCONST+10
COUNEQUVAR
同一符号不能用EQU重新定义。
汇编时,作为替代符号用,不产生目标代码,不占
用存储单元。
第四章汇编语言
・一>符号定义语句
•2.等号语句
•格式:符号=表达式
•C0NT=5
•NUM=10H
•NUM=NUM+20H
•表达式形式同上,但可多次重新定义同〜
行亏。
第四章汇编语言
四、数据定义语句
格式:变量名DB/DW/DD表达式1,表达式2,…
保留存储空间,并可以完成数据的初始化。
例:
DATASEGMENT
DA1DB9AH
DA2DW5678H
DA3DD12345678H
DATAENDS
变量的属性:段属性SEG
偏移属性。FFSET
类型属性TYPE
第四章汇编语言
四、数据定义语句
•格式:变量名DB/DW/DD表达式J,表达式2,…
表达式:
⑴教值
⑵字符/字符串
(3)?表达式:分配相应数量的存储单元,但不初始化。
(4)带DUP的表达式:使用重复数据操作符DUP,能方便
地定义连续的存储单元。
格式:变量名DB/DW/DD表达式J,DUP(表达式2)
次教内<
操作符DUP可以嵌套使用:
DAB3DB10HDUP(4DUP(3),8)
第四章汇编语言
DABYTElDB50H数值表达式
DA*YTE2DB10H,20H,30H,40HHz
DA^WORDlDW0A34H/
DA]WORD2DW1234H,5678H,9ABCH
DAZDWORDDD12345678H,9ABCDEFH
字符串表达式、
STRING1DB'STRING'
STRING!DW6ST\RT,NG,
STRINGSDD'ST',RI','NG'
]?表达式'
DABYTE3DB?,?
DAWORD3DW?,?
第四章汇编语言
STRING!STRING3
STRING1
第四章汇编语言
带DUP表达式
DABlDB10HDUP(?7一
DA]B2DB20HDUPCABCD,)
DA]WIDW10DUP(4)
DAW2DW10DUP(-IJ)
内容
格式:变量名DB/DW/DD表达式1,DUP(表达式2)
操作符DUP可以嵌套使用
DB10HDUP(4DUP(3),8);3,3,3,3,8重复10H次
第四章汇编语言
数据类型
字节BYTE1DB
字WORD2DW
双字DWORD4DD
四字QWORD8DQ
十字节TBYTE10DT
第四章汇编语言
五、汇编语言数据与运算符
1.常教数值常教:二、八、十、十六进制B,O,D,H
字符串常教
2.变量
用数据定义语句定义并预置初值后,变量代表存储单元的教
据,并作为该单元的符号地址。
变量引用:
在指令语句的操作数字段中,引用的变量名作为地址表
达式的组成部分之一。
地址表达式的值:存放操作数的存储单元偏移量。
地址表达式的类型:同变量名的类型。
(2)在用DW或DD的数据定义语句中,若操作教字段引用
了变量名,则在分配的存储单元中,预置被引用的变量名的
地址部分偏移量fDW;DD,前两个字节)
——段基值CDD,后两个字节)
皿阳备UM理8啊/第四章汇编语言
3.标号:一条指令的符号地址。
•段属性
•偏移属性
•类型属性NEAR/FAR
♦类型属性设置:
•C1J隐、合方式:NEXT:MOVAX,3000
•(2)用LABEL伪指令设置类型属性:
•标号伪指令LABEL格式:
•名字LABEL类型
•与指令语句配合使用:
•名字(新标号)LABEL类型CNEAR/FARJ
•SUB1_FARLABELFAR
•SUB1:MOVAX,1234H
•与数据定义语句配合使用:
•名字(新变量名)LABEL类型CBYTE/WORD/DWORDJ
•DATA_BYTELABELBYTE
•DATAWORDDW20HDUPC563HJ
第四章汇编语言
4.运算符C1J算术运算符
运算符运算格式运算功能
++表达式正教r单项运算符)
-表达式j负教(单项运算符)
+表达式1+表达式2加法
表达式1-表达式2戒法
*表达式1*表达式2乘法
/表达式1/表达式2除法(取商)
MOD表达式1MOD表达式2模除(取余数)
SHR表达式1SHR次教右移
SHL表达式1SHL次教左移
只有臧法运算可以用同一段内的两个变量相戒
SHR、SHL不能对某寄存器或存储单元内余进行移住运算。
皿阳备UM理8啊/第四章汇编语言
示例
NUM=11011011B
DATA1DWNUMSHL3,NUMSHR2
MOVAX,NUMSHL3
MOVBX,NUMSHR2
MOVCX,NUMSHL8
MOVCX,NUMSHL16
MOVDX,NUMSHR8
MOVDX,NUMSHR16
DATA1DW6D8H,36H
•••
MOVAX5011011011000B
MOVBX,00110110B
MOVCX,1101101100000000B
MOVCX,0
MOVDX,0
MOVDX,0
第四章汇编语言
算术运算符
•移位运算符不能对寄存器或存储单元进行
移住运算
MOVAX,CXSHL5
MOVDX,DATA1SHR3
第四章汇编语言
(2)近春运算符
运算符运算格式___________运算功能
NOTNOT表达式之梅非
AND表达式1AND表达式2谡子耳与
OR表达式1OR表达式2遂子耳或
XOR表达式1XOR表达式2谡握异或
近转运算符只能对一个具体数据进行近转运算,不能对一
个寄存器操作数或存储器操作教进行逻辑运算。
要援学孝关摩
皿阳备UM理8啊/第四章汇编语言
示例
MOVAL,NOTOFOH
MOVDX,NOTOFOH
MOVBL,55HOROFOH
ANDBH,55HANDOFOH
XORCX,55HXOR50H
MOVAL,OFH
MOVDX,OFFOFH
MOVBL,0F5H
ANDBH,50H
XORCX,5
第四章汇编语言
(3)关余运算符
运算符运算格式运算功能
EQ表达式1EQ表达式2两个表达式相等为真
NE表达式1NE表达式2两个表达式不相等为真
LT表达式1LT表达式2表达式1<表达式2为工
LE表达式1LE表达式2表达式1<=表达式2为真
GT表达式1GT表达式2表达式1>表达式2为真
GE表达式1GE表达式2表达式1>=表达式2为真
全1为真,会。为假
比较时,若为常数按无符号数比较;如果是变量,按偏移
量比较
皿阳备UM理8啊/第四章汇编语言
示例
DATASEGMENT
ORG10H
NUM1=1234
NUM2=1234H
DABYTEDB10HDUP(O)
DA^WORDDW10HDUP(O)
DA]VAR1DWNUM2+DABYTEGTNUMl+DAWOR
DAVAR2DBNUM1LENUM2
DATAENDS
MOVAX,NUM1LTNUM2
MOVBL,NUM1GENUM2
MOVCX,DAWORDGTDABYTE
第四章汇编语言
DAVARlDWOFFFFH
DAVAR2DBOFFH
MOVAX,OFFFFH
MOVBL,0
MOVCX,OFFFFH
可以对两个常数进行比较,不能用常数与偏移量进行比较
第四章汇编语言
C4J数值返回运算符
格式:V运算符〉V地址表达式〉
运算对象是存储器操作教,由变量名或标号组成地
址表达式
•SEG:返回变量所在的段值
•OFFSET:返回变量所在偏移
•TYPE:返回变量的类型
•LENGTH:返回数组变量的元素个数
•SIZE:返回数组变量所占的总字节教
SIZE=TYPE*LENGTH
第四章汇编语言
示例假设DATA的段基址是7A4EH
DATASEGMENT
ORG30H
DAIDB20HDUP(12H)
DA2DWDAI
DATAENDS
MOVAX,SEGDAIMOVAX,7A4EH
MOVBX,SEGDA2MOVBX,7A4EH
MOVSI,OFFSETDAIMOVSI,30H
MOVCX,DA2MOVCX,DA2
MOVDI,OFFSETDA2MOVDI,50H
MOVDX,OFFSETDA1+4MOVDX,34H
第四章汇编语言
TYPE运算符
类型属性运算结果
变量BYTE1
WORD2
DWORD4
■NEAR-1
FAR-2
用数字形式表示变量和标号的类型属性
第四章汇编语言
示例
DABYTEDB12H
DA]WORDDW3456H
DA]DWORDDD789AH
MOVAL,TYPEDABYTE
MOVBL,TYPEDATWORD
MOVCL,TYPEDA-DWORD
MOVAL,1
MOVBL,2
MOVCL,4
第四章汇编语言
LENGTH与SIZE运算符
•LENGTH运算符
返回教组变量的元素个教
如果变量用DUP定义,Length为外层DUP的值
如果没有DUP定义,结果为1
・SIZE运算符
教组变量所占的总字节教
SIZE是LENGTH和TYPE的乘积
第四章汇编语言
示例
DATASEGMENT
VARIDB10HDUP(O)
VAR2DB10H,20H,30H,40H
VAR3DW10HDUP('A14DUP(3))
VAR4DBCOMPUTER,
•••
DATAENDS
•••
MOVAL,LENGTHVARI;(AL尸1OH
MOVAH,SIZEVARI;(AH尸1OH
MOVBL,LENGTHVAR2;(BL尸1
MOVBH,SIZEVAR2;(BH)=1
MOVCL,LENGTHVAR3;(CL尸1OH
MOVCH,SIZEVAR3;(CH尸20H
MOVDL,LENGTHVAR4;(DL尸1
尸
MOVDH?SIZEVAR4;(DH1
第四章汇编语言
例:求教组ARRAY的各数据项的累加和,从教组最后
一个数据项开始进行累加。
ARRAYDW20HDUP(4)
XORAX,AX
MOVSI,OFFSETARRAY
ADDSI,SIZEARRAY-TYPEARRAY
MOVCX,LENGTHARRAY
LOP:ADDAX,[SI]
SUBSI,TYPEARRAY
LOOPLOP
第四章汇编语言
(5)属性运算符
PTR:类型PTR地址表达式
类型可以是:BYTE9WORD9DWORD或NEARFAR
仅在当前语句中有效,是一种临时设置。
DABYTEDB20HDUP(O)
DA]WORDDW10HDUP(O)
MOVWORDPTRDABYTE[10],AX
ADDBYTEPTRDAWORD[DI],BL
INCBYTEPTR[SI]一
SUBWORDPTR[BX],30H
JMPFARPTRSUB1
第四章汇编语言
THIS:THIS类型
•THIS常与等值语句EQU一起用,形成新变量名或
标号,使它们具有THIS后所指的类型,而段基值
和偏移量与紧接的变量名或标号相同。
•例:
•DATA_BYTEEQUTHISBYTE
•DATA_WORDDW20HDUPCOJ
•JUMP_FAREQUTHISFAR
•JUMPNEAR:XORAX,AX
MNaUM理B啊/第四章汇编语言
(6J分离字节运算符
HIGH表达式
LOW表达式
分离运算对象的离字节和低字节部分
表达式必须具有常量值,如常教、地址表达
式的偏移量,不能是存储器操作教或寄存器
内余.
皿阳备UM理8啊/第四章汇编语言
示例
DATASEGMENT
ORG20H
CONSTEQUOABCDH
MOVAH,OABH
DATA1DB10HDUP(?)
MOVAL,OCDH
DATA2DW20HDUP(?)
MOVBH,0
MOVBL,30H
DATAENDS
MOVCL,68H
MOVAH,HIGHCONST
MOVAL,LOWCONST
MOVBH?HIGH(OFFSETDATA1)
MOVBL,LOW(OFFSETDATA2)
MOVCL,LOW(CONSTSHL3)
第四章汇编语言
错误:
MOVCH,HIGHDATA1
i>存储器
MOVCL,LOWDATA1
MOVDH,HIGHBP
।—寄存器
MOVDL,LOWAX
第四章汇编语言
(7)运算符的优先级
优先级别运算符
(最高)1LENGTH,SIZE
2PTR,OFFSET,SEG,TYPE?THIS
3HIGH,L0W
4+,-(单项运算符)
5*,/,MOD,SHR,SHL
6+,~
7EQ,NE,LT,LE,GT,GE
8NOT
9AND
(最低)10OR,XOR
第四章汇编语言
六、段结构伪指令
1.段定义伪指令
段名SEGMENT[定住类型][组合类型]['类别名']
■■■
段名ENDS
•定位类型(AlignType):
PAGE(页):本段从一个页的边界开始,起始地址能被
256整除。
PARA(节):本段从~个节的边界开始,起始地址能被
16整除。
WORD(字):本段从偶字节地址开始。
BYTE(字节):本段从任意地址开始。
第四章汇编语言
•组合类型(CombineType):
表示段与段之间的连接:
None:本段与其它段无连接关宗,是独立的。
PUBLIC:本段与其它同段名同类型的段相连接在一起
,然后为所有这些段指定~个共同的段基地址,形成一
个新的近新段。
COMMONt本段与其它同段名同类型的段设置相同的
段基址,共享相同的存储区,段长度由同名段中最大的
段确定。(覆盖段)
皿阳备UM理8啊/第四章汇编语言
组合类型(CombineType):
•STACK:与PUBLIC段相似,但此段为堆找
段,系统自动对SS寄存器和SP指针初始化。
•AT表达式:本段的起始单元可以定位在表
达式所示的节边界上。
•MEMORY:本段定伉在所有其它段的最高
地址,有多个段,只把第〜个遇到的当作
此段。
类别名(Class):用户给定,在链接时把相同
的段存储在连续的存储区。
第四章汇编语言
2.段寻址伪指令
ASSUME段寄存器名:段名,段寄存器名:段名,.
DSDATASEGMENT
VARIDB12H
DSDATAENDS
ES^DATASEGMENT
VAR2DB34H
ESDATAENDS
CODESEGMENT
VAR3DB56H
第四章汇编语言
ASSUMECS:CODE?DS:DS_DATA,ES:ES_DATA
START:……
•••
INCVARI
INCVAR2
INCVAR3
•••
CODEENDS
ENDSTART
・可用关键字NOTHING取请前面的某些设置。
例:ASSUMEDS:NOTHING;取消对DS的设置
ASSUMENOTHING;取消全部4个段R的设置
皿阳备UM理8啊/第四章汇编语言
3.段寄存器的装入
<1>DS,ES的装入
DATADSSEGMENT
DB1一DB10HDUP(?)
DATADSENDS
DATAESSEGMENT
DB2一DB20HDUP(?)
DATAESENDS
CODFSEGMENT
ASSUMECS:CODE,DS:DATA_DS,ES:DATA_ES
START:MOVAX,DATAJDS;设鳖DS
MOVDS,AX~
MOVAX,DATAJES;^SES
MOVESfAX
•••
CODEENDS
第四章汇编语言
自动
<2>SS的装人装入
(1)STACK1SEGMENTPARASTACK
DW20HDUP(?)r执行程序'
STACK1ENDS装入
,J
(2)STACK2SEGMENT
DW30HDUP(?)
TOPLABELWORD
STACK2ENDS
CODESEGMENT
MOVAX,STACK2;设置SS
MOVSS,AX
MOVSP,OFFSETTOP;修改SP
第四章汇编语言
<3>CS的装人
(1)结束伪指令
•••
CODESEGMENT
ASSUMECS:CODE,
•••
START:
•••
CODEENDS
ENDSTART
(2)CALL,RET;JMP;IRET
第四章汇编语言
七、过程定义伪指令
过程名PROC[NEAR/FAR]
•••
RET
过程名ENDP
•有三个属性
•〜个过程内,至少有〜条返回指令RET
•调用过程使用CALL过程名
•段内返回与段间返回
第四章汇编语言
入、其它伪指令
•1.ORG,$
ORG表达式
将表达式的值赋给优置计数案
$存放位置计数器的当前值
第四章汇编语言
•ORG,$举例
DATASEGMENT
ORG30H;$=30H
DB1DB12H534H;$=32H
ORG$+20H;$=52H
STRINGDB"STRING5
•••
DATAENDS
第四章汇编语言
DATASEGMENT
DAI1UHDTU-TTPTV(/C?X)X;$=___7/0/-f/'f'
DA2DB12H,34H;$=72H
DA3DW56H,$+10H,78H,$+20H;$=MH
•••
DATAENDS
CODESEGMENT
ORG50H
MOVAX,OFFSET$
MOVBX,OFFSET$
•••
CODEENDS
MOVAX,0050H
MOVBX90053H
第四章汇编语言
入、其它伪指令
•2.EVEN伪指令定位偶地址
•3.INCLUDE伪指令
INCLUDE文件名
INCLUDE文件名
例:INCLUDEFILE.MAC
INCLUDEB:\MASM\ABC.ASM
第四章汇编语言
4.PUBLIC
PUBLIC符号1,符号2,
PUBLICNUM1,STRING,SUB1,LOOP1
DATA1SEGMENT
NUM1EQU1234H
・・・
STRINGDB'CHARACTERSTRING'
DATA1ENDS
CODEISEGMENT
SUB1PROCFAR
SUB1ENDP
LOOP1:...
CODEIENDS
END
第四章汇编语言
5.EXTRN伪指令
EXTRN符号1:类型,符号2:类型,
画、
4、EXTRNNUM1:ABS,STRING:BYTE
EXTRNSUB1:FAR,LOOP1:NEAR
C0DE2SEGMENT
MOVAX,NUM1
LEABX,STRING
CALLSUB1
JMPFARPTRL00P1
CODE2ENDS
END
第四章汇编语言
入、其它伪指令
•5.TITLE(标题)伪指令,指定〜个标题
格式:TITLE文本
•字符不超过80个
例:
TITLEEXAMPLEPROGRAM
第四章汇编语言
九、宏指令
例:
MULTAX10MACRO
PUSHBX
SALAX,1
MOVBX,AX
SALAX,1
SALAX,1
ADDAX,BX
POPBX
ENDM
第四章汇编语言
九、宏指令
1.宏定义
宏名MACRO[形参1,形参2,…]
ENDM
EXCHANGEMACROMEM1,MEM2,REG
MOVREG,MEM1
XCHGREG,MEM2
MOVMEM1,REG
ENDM
皿阳备UM理8啊/第四章汇编语言
2.宏调用宏名[卖参1,实参2,…]
EXCHANGEDABY1?DABY2,AL
3.宏展开
皿阳备UM理B啊/第四章汇编语言
;宏定义
MULTAX10MACRO___
PUSHBX
SALAX,1
MOVBX,AX
SALAX,1
SALAX,1
ADDAX,BX
POPBX
ENDM
EXCHANGEMACROMEM1,MEM2,REG
MOVREG,MEM1
XCHGREG,MEM2
MOVMEM1,REG
ENDM
第四章汇编语言
DATASEGMENT
DAWOlDW—1234H
DA502DW5678H
DATAENDS
;设置堆栈段
STACK1SEGMENTPARASTACK
DW20HDUP(?)
STACK1ENDS
;设置代码段
COSEGSEGMENT
ASSUMECS:COSEG,DS:DATA,SS:STACK1
START:MOVAX,DATA
MOVDS,AX
•••
MULTAX10;宏指令语句
+PUSHBX
+SALAXJ
第四章汇编语言
+MOVBX,AX
+SALAX,1
+SALAX,1
+ADDAX,BX
+POPBX
EXCHANGEDAW01,DAW02,CX:宏指令语句
+MOVCX?DAW01
+XCHGCX,DAW02
+MOVDAWOf,CX
COSEGENDS
ENDSTART
第四章汇编语言
4.宏操作符
•连接操作符&
定义:SHIFTVARMACRORM,DIRECT,COUNT
MOVCL,COUNT
S&DIRECTRM,CL
ENDM
调用:SHIFTVARAX,HL,2
SHLAX,CL
SHIFTVARAX,HR,2
SHRAX,CL
第四章汇编语言
表达式操作符%
格式:%表达灰;获取表达式的值(出现在宏调用中)
SHIFOMACROCNT
MOVCL,CNT
ENDM
SHIF1MACROREG,DIRECT,
NUM
COUNT=NUM;宏展开
SHIFO%COUNTSHIF1AX,HL,2
S&DIRECTREG,CL+MOVCL,2
ENDM+SHLAX,CL
宏调用SHIF1BL,AR,3
SHIF1AX,HL,2+MOVCL,3
SHIF1BL,AR,3+SARBL,CL
第四章汇编语言
•文本操作符V>
EXCHANGE<BYTEPTRDA_WORD1>,<BYTEPTRDA_W0RD2>,AL
宏展开
MOVAL,BYTEPTRDAWORD1
XCHGAL,BYTEPTRDA]WORD2
MOVBYTEPTRWORD1-AL
•字符操作符!
格式:!字符
宏定义:PROMPTMACRONUM,TEXT
PROMP&NUMDB'&TEXT&'
ENDM
宏调用:PROMPT23,<Expression!>255>
宏展开:PROMPT23DB'Expression>2559
•宏注解符;;
第四章汇编语言
5.LOCAL伪指令
LOCALv符号表>
在汇编过程中,宏定义中的内态会在每一
次宏调用处展开。因此当多次调用〜个宏时,
宏定义中的标号会造成标号重复定义。
在宏定义中使用LOCAL伪指令可以使标号
被局部化,从而避免重复定义。
LOCAL伪指令只能用在宏定义中,并且它
必须是宏定义中紧跟在MACRO伪指令之后的
第〜个语句。
第四章汇编语言
用连续相加的办法实现无符号数乘法运算
MULTIPMACROMULTI?MULT2,MULT3
LOCALLOP,EXITO
MOVDX,MULTI
MOVCX,MULT2
XORBX,BX
XORAX,AX
JCXZEXITO
LOP:ADDBX,DX
ADCAX,0
LOOPLOP
EXITO:MOVMULT3,BX
MOVMULT3+2,AX
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件设计师考试市场分析试题及答案
- 环境政策与政治动员关系研究试题及答案
- 政府干预经济的公共政策策略及答案
- 软件设计师考试技能验证方式试题及答案
- 深入探讨机电工程师的职业发展现状与试题及答案
- 公共政策中的社会公平考题及答案
- 5G技术在智慧养老院中的应用探索
- 支持与反对西方政治制度的多面性试题及答案
- 机电工程2025年机械设计试题及答案
- 网络工程师考试知识树梳理试题及答案
- LY/T 3398-2024草原等级评定技术规程
- 内蒙古自治区科技成果交易平台
- 广西河池市(2024年-2025年小学六年级语文)部编版期中考试(下学期)试卷及答案
- 2025年日历(日程安排-可直接打印)
- 【MOOC】心理学-华南师范大学 中国大学慕课MOOC答案
- 针灸治疗之蛇串疮课件
- 介绍圆明园课件
- 《英语翻译》教案全套 陈霞 第1-8章 中西方翻译史 - 文体翻译
- DB11∕T 2115-2023 机械式停车设备使用管理和维护保养安全技术规范
- 全国现场流行病学调查职业技能竞赛考试题及答案
- 2025年中考化学易错类型:物质检验 鉴别 除杂 分离“五大”易错防范(解析版)
评论
0/150
提交评论