




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
12.1符号指令中的表达式1.常量和数值表达式;2.变量和地址表达式;3.标号;4.标量和标号类型的变更。22.变量和地址表达式变量是存储器中的数据或数据区的符号表示。变量名即是数据的地址或数据区的首地址。地址表达式是由变量、常量、寄存器(SI、DI、BX、BP)的内容和运算符组成的有意义的式子。变量或地址表达式可给出指令中的存储器的地址。由于存储器是分段使用的,因此变量或地址表达式都具有3重属性:段地址、偏移地址和类型。3变量的段地址是指变量所在段的段首地址除以10H之商;变量的偏移地址是指变量所在段的段首址到该变量的字节距离;变量的段地址和偏移地址分别用SEG或OFFSET两个算符来指定。例如:变量W的段地址和偏移地址分别表示为SEGW和OFFSETW。
4变量的定义[变量名]
数据定义伪指令表达式[,……]
变量名:数据的地址或数据区的首地址数据定义伪指令:DB(定义字节)、DW(定义字)、DD(定义双字)、DQ(定义4字)、DT(定义10字节)表达式:数值表达式、ASCII码字符串、地址表达式、?及nDUP(表达式)5
例如,在数据段DATAl中定义的变量如下:
WlDWB3;
B1DB'AB$’;
W2DW-5,1994H;
B2DB4DUP(?);
DDDEB;
B3DB2DUP(-1)DB1DUP(10,’E’);
DB’13’,1,3在附加数据段DATA2中定义的变量如下:
EBDB8DUP(?)EWDW’AB’,’CD’
64.标量和标号类型的变更格式:类型PTR地址表达式PTR算符用来明确指出某个变量、标号或地址表达式的类型属性,或者使它们临时兼有与原定义所不同的类型属性,但仍保持它们原来的段地址和偏移地址属性不变。如:BYTEPTRW1
7寻址方式——寻找操作数的方法
寻找操作数的地址在8086指令系统中,说明操作数所在地址的寻址方式可分为8种:
①立即寻址⑤寄存器相对寻址
②直接寻址⑥基址-变址寻址
③寄存器寻址⑦相对的基址-变址寻址
④间接寻址⑧隐含寻址三、8086的寻址方式8寄存器间接、寄存器相对、基址变址、相对基址变址四种寻址方式的比较:
寻址方式指令操作数形式
寄存器间接——只有一个寄存器(BX/BP/SI/DI之一)寄存器相对——一个寄存器加上位移量基址—变址——两个不同类别的寄存器相对基址-变址——两个不同类别的寄存器加上位移量92.38086/8088指令系统
数据传送类指令加减运算指令位操作指令指令应用举例102.3.1数据传送类指令
可实现存储器寄存器I/O
数据传送指令又可分为如下四种:数据传送指令数据交换指令堆栈操作指令地址传送指令查表转换指令111.数据传送指令(1)MOVdest,src;dest←src
传送的是字节还是字取决于指令中涉及的寄存器是8位还是16位。具体来说可实现:
①MOVmem/reg1,mem/reg2
指令中两操作数中至少有一个为寄存器例:MOV CL,DLMOV AX,BX MOV [SI],CX
MOV CL,[BX+5]12MOV指令使用规则:1)IP不能作目的寄存器2)不允许mem←mem3)不允许segreg←segreg4)立即数、CS不允许作为目的操作数5)不允许segreg←立即数6)源操作数与目的操作数类型要一致13应用举例:将1000H开始的100个存储单元全部填充为ASCII码2AH(*)。程序段如下:
MOVDI,1000HMOVCX,64HMOVAL,2AHAGAIN:MOV[DI],ALINCDI
DECCXJNZAGAINHLT14格式:XCHGreg,mem/reg功能:交换两操作数的内容。要求:两操作数中必须有一个在寄存器中;操作数不能为段寄存器和立即数;源和目地操作数类型要一致。举例:XCHG AX,BXXCHG [2000],CL(2)数据交换指令XCHG15什么是堆栈?按“后进先出(LIFO)”方式工作的存储区域。堆栈以字为单位进行压入弹出操作。为什么要设置堆栈?为什么要按“后进先出”方式工作?参见下图(3)堆栈操作指令16堆栈指令使用时应注意几点:①堆栈操作总是按字进行②不能从栈顶弹出一个字给CS③堆栈指针为SS:SP,SP永远指向栈顶④SP自动进行增减量(-2,+2)17(4)地址传送指令用途:用于传送操作数的地址传送偏移地址格式:LEAreg,mem;将指定内存单元的偏移地址送到指定寄存器传送地址指针格式:LDSreg,mem32;DS:reg←(mem开始的四个内存单元的内容)LESreg,mem32;同上,但DS改为ES要求:
1)源操作数必须是一个存储器操作数;
2)目的操作数必须是一个16位的通用寄存器。18(5)查表指令XLAT
执行的操作:AL←[(BX)+(AL)]
又叫查表转换指令,它可根据表项序号查出表中对应代码的内容。执行时先将表的首地址(偏移地址)送到BX中,表项序号存于AL中。
例如:内存数据段有一张16进制数的ASCII码表,设首地址为2000H,如欲查出表中第11个代码(代码序号从0开始)即十六进制数B的ASCII码。ASCII表在DS段中,并假设(DS)=4000H。见下页图。192.3.2加减运算指令1.加法指令2.减法指令
3.比较指令20(1)不带进位的加法指令ADD
格式:ADD acc,dataADD mem/reg,dataADD
mem/reg1,mem/reg2
实例:
ADD AL,30HADD SI,[BX+20H] ADD CX,SI ADD [DI],200H1.加法指令21(2)带进位位的加法指令ADCADC指令在形式上和功能上与ADD类似,只是相加时还要包括进位标志CF的内容,例如:
ADCAL,68H;AL←(AL)+68H+(CF) ADCAX,CX;AX←(AX)+(CX)+(CF)ADCBX,[DI];BX←(BX)+[DI+1][DI]+(CF)22格式:INCreg/mem功能:类似于C语言中的++操作:对指定的操作数加1例:INCALINCSIINCBYTEPTR[BX+4]注:本指令不影响CF标志。3)加1指令INC(增量指令)(单操作数指令)23(1)不考虑借位的减法指令SUB
格式:SUBdest,src
操作:dest←(dest)-(src)注:1.源和目的操作数不能同时为存储器操作数
2.立即数不能作为目的操作数指令例子:
SUBAL,60HSUB[BX+20H],DXSUBAX,CX2.减法指令24SBB指令主要用于多字节的减法。格式:SBBdest,src操作:dest←(dest)-(src)-(CF)指令例子:
SBBAX,CXSBBWORDPTR[SI],2080HSBB[SI],DX(2)考虑借位的减法指令SBB25作用类似于C语言中的“--”操作符。格式:DECopr 操作:opr←(opr)-1指令例子:
DECCLDECBYTEPTR[DI+2]DECSI(3)减1指令DEC(减量指令)26格式:CMPdest,src操作:(dest)-(src)CMP也是执行两个操作数相减,但结果不送目标操作数,其结果只反映在标志位上。指令例子:
CMPAL,0AHCMPCX,SICMPDI,[BX+03]3.比较指令CMP272.3.3位操作指令:逻辑运算和位移指令
1.逻辑运算指令●运算规则:按位操作,无进/借位
●对标志位的影响(除NOT指令外):CFOFSFZFPFAF00***无定义
根据运算结果设置28格式:NEGopr操作:opr←0-(opr)对一个操作数取补,可将该数变为绝对值相等符号相反的另一数。例:若(AL)=0FCH,则执行NEGAL 后,
(AL)=04H本例中,0FCH可视为-4的补码,执行求补指令后,即得到4(-4的绝对值)。(1)求补指令NEG29(2)逻辑”与”AND对两个操作数进行按位逻辑“与”操作。格式:ANDdest,src用途:保留操作数的某几位,清零其他位。例1:保留AL中低4位,高4位清0。
ANDAL,0FH例2:AL中有字符’a’~’z’,将其转换成大写。
ANDAL,01011111B;30对两个操作数进行按位逻辑”或”操作。格式:ORdest,src用途:对操作数的某几位置1;对两操作数进行组合。例1:把AL中的非压缩BCD码变成相应十进制数的ASCII码。
ORAL,30H(3)逻辑”或”OR31对操作数进行按位逻辑”非”操作(包括符号位)。格式:NOTmem/reg例:NOTCXNOTBYTEPTR[DI](4)逻辑“非”(取反)NOT32对两个操作数按位进行”异或”操作。格式:XORdest,src用途:对reg清零(自身异或)
把reg/mem的某几位变反(与’1’异或)例1:把AX寄存器清零。例2:把DH的bit4,3变反①MOVAX,0XORDH,18H②XORAX,AX③ANDAX,0④SUBAX,AX(5)逻辑”异或”XOR
33操作与AND指令类似,但不将”与”的结果送回,只影响标志位。TEST指令常用于位测试,与条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年影视文化试题及答案
- 2025年高中化学重点:反应速率与化学平衡知识点总结详解
- 北师大版六年级下册跨学科主题学习《相关联的量》表格式教学设计
- 个人投资合作协议书
- 危险品仓库出租协议
- 文件归档分类管理表格
- 大兴区移动轻钢房施工方案
- 邗江区槽式桥架施工方案
- 洗手间地砖美缝施工方案
- 2025年医学b超专业试题及答案
- 软件工程东北大学信息科学与工程学院课件
- 电力电子技术课后习题答案
- 文化研究会章程
- 市政道路工程监理大纲范本完整
- 浙江大学C语言期末上机考试题
- 西安市城镇基本医疗保险特殊药品治疗(备案计划)申请表【模板】
- 可编辑的中国地图
- 婚礼开场白主持词15篇
- 部编人教版道德与法治五年级下册全册课时练习讲解课件
- 识读齿轮精测报告课件
- 《农村土地承包法》课件
评论
0/150
提交评论