版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 汇编语言程序设计汇编语言程序设计概述p汇编语言源程序格式:汇编语言源程序格式:u助记符指令一般包含助记符指令一般包含4个部分,其一般组成形式为:个部分,其一般组成形式为:标号标号: 助记符助记符 操作数操作数 ;注释;注释 u书写格式规则详见书写格式规则详见P138,!u标号标号所有汇编指令和大多数汇编伪指令前面都可以带有所有汇编指令和大多数汇编伪指令前面都可以带有标号;必须从第一列开始书写;最多标号;必须从第一列开始书写;最多32个字符;由字母、个字符;由字母、数字、下划线和数字、下划线和$组成,且不能以数字开头;分大小写;冒组成,且不能以数字开头;分大小写;冒号不属于标号名;
2、没有标号的源语句第一列必须为空格、号不属于标号名;没有标号的源语句第一列必须为空格、星号或分号。星号或分号。u助记符助记符不能从第一列开始,否则被认为是标号;指令助不能从第一列开始,否则被认为是标号;指令助记符一般用大写;汇编伪指令一般为小写,且以记符一般用大写;汇编伪指令一般为小写,且以“.”开头。开头。u操作数操作数操作数列表,可以是常数、符号或常数与符号构操作数列表,可以是常数、符号或常数与符号构成的表达式。操作数间需用成的表达式。操作数间需用“,”号隔开;三种前缀形式:号隔开;三种前缀形式:#, *, 。数据类型数据类型举例举例二进制二进制10011000B,01111010b(最多(
3、最多16位)位)八进制八进制226q,1001Q,0124(多达(多达6位)位)十进制十进制略略十六进制十六进制0DH,123H,0X89,0 x0D(多达(多达4位)位)浮点数浮点数1.786e9(浮点数仅在(浮点数仅在C语言使用)语言使用)字符常数字符常数a,b字符串字符串“example”常数与字符串类型类型含义含义标号标号符号地址符号地址( (可作为可作为. .globalglobal,. ,.refref,. ,.defdef的操作数的操作数) )局部标号局部标号$n, name? $n, name? (临时性的标(临时性的标号号,.newblock,.sect,.text,.dat
4、a,.include,.copy,.newblock,.sect,.text,.data,.include,.copy取消)取消)符号常数符号常数.set, .struct/.tag/.endstruct.set, .struct/.tag/.endstruct (提高可读性)(提高可读性)预定义符号常数预定义符号常数$, $, 寄存器符号寄存器符号, , 其他其他替代符号替代符号符号替代变量符号替代变量, .asg, .asg “high”, AR2 “high”, AR2(可重新定义)(可重新定义)标号举例序号序号符符 号号运算操作运算操作求值顺序求值顺序1 1+ - + - !取正、取负
5、、按位求补、逻辑负取正、取负、按位求补、逻辑负 从右至左从右至左2 2* * / % / %乘法、除法、求模乘法、除法、求模从左至右从左至右3 3+ -+ -加法、减法加法、减法从左至右从左至右4 4 指数指数 从左到右从左到右 5 5左移、右移左移、右移从左至右从左至右6 6 = = =大于、大于等于大于、大于等于从左至右从左至右8 8!= =!= =不等于、等于不等于、等于 从左至右从左至右9 9& &按位与运算按位与运算从左至右从左至右1010 按位异或运算按位异或运算从左至右从左至右1111| |按位或运算按位或运算从左至右从左至右汇编语言表达式有效定义表达式:有效定义
6、表达式堆栈操作分分 类类 指指 令令 说说 明明 无条件无条件分支转移分支转移 BD 用该指令指定的地址加载用该指令指定的地址加载PC PC BACCD 用累加器的低用累加器的低1616位指定的地址加载位指定的地址加载PC PC 条件条件分支转移分支转移 BCD 若满足指令给定条件,用该指令指定的地址加载若满足指令给定条件,用该指令指定的地址加载PC PC BANGD 若当前选择辅助寄存器不等于若当前选择辅助寄存器不等于0 0,用该指令指定的地址加载,用该指令指定的地址加载PC PC 远程远程分支转移分支转移 FBD 用该指令指定的地址加载用该指令指定的地址加载PCPC和和XPC XPC FB
7、ACCD 用累加器的低用累加器的低2323位指定的地址加载位指定的地址加载PCPC和和XPC XPC 控制程序分分 类类 指指 令令 说说 明明 无条件无条件调用调用 CALLD 将返回的地址压入堆栈,并用该指令指定的地址加载将返回的地址压入堆栈,并用该指令指定的地址加载PC CALAD 将返回的地址压入堆栈,用累加器将返回的地址压入堆栈,用累加器A或或B指定的地址加载指定的地址加载PC 条件条件调用调用 CCD 如果满足指令给定条件,将返回的地址压入堆栈,并用该如果满足指令给定条件,将返回的地址压入堆栈,并用该 指令指定的地址加载指令指定的地址加载PC远程远程调用调用 FCALL D 将将X
8、PC和和PC压入堆栈,并用该指令指定的地址加载压入堆栈,并用该指令指定的地址加载PC和和XPC FCALA D 将将XPC和和PC压入堆栈,用累加器的低压入堆栈,用累加器的低23位指定的地址加载位指定的地址加载 PC和和XPC 分支操作分分 类类 指指 令令 说说 明明 无条件无条件返回返回 RETD 将堆栈顶部的返回地址加载到将堆栈顶部的返回地址加载到PC。 RETED 将堆栈顶部的返回地址加载到将堆栈顶部的返回地址加载到PC,并使能可屏蔽中断。,并使能可屏蔽中断。 RETFD 将将RTN寄存器中的返回地址加载到寄存器中的返回地址加载到PC,并使能可屏蔽中断。,并使能可屏蔽中断。 条件条件返
9、回返回 RCD 如果满足指令给定条件,将堆栈顶部的返回地址加载到如果满足指令给定条件,将堆栈顶部的返回地址加载到PC。 远程远程返回返回 FCALL D 将堆栈顶部的值弹出加载到将堆栈顶部的值弹出加载到XPC, 将堆栈中下一个值弹出加载到将堆栈中下一个值弹出加载到PC。 FCALA D 将堆栈顶部的值弹出加载到将堆栈顶部的值弹出加载到XPC, 将堆栈中下一个值弹出加载到将堆栈中下一个值弹出加载到PC,并使能可屏蔽中断。,并使能可屏蔽中断。 分支操作操作符号操作符号条条 件件说说 明明操作符号操作符号条条 件件说说 明明AEQA=0累加器累加器A等于等于0 AOVAOV=1累加器累加器A溢出溢出
10、 BEQB=0累加器累加器B等于等于0 BOVBOV=1累加器累加器B溢出溢出 ANEQA 0累加器累加器A不等于不等于0 ANOVAOV=0累加器累加器A不溢出不溢出 BNEQB 0累加器累加器B不等于不等于0 BNOVBOV=0累加器累加器B不溢出不溢出 ALTA0累加器累加器A小于小于0 CC=1ALU进位位置进位位置1 BLTB0累加器累加器A大于大于0 BIOBIO低低BIO信号电平为低信号电平为低 BGTB0累加器累加器B大于大于0 NBIOBIO高高BIO信号电平为高信号电平为高 AGEQA 0累加器累加器A大于等于大于等于0 UNC无无无条件操作无条件操作 BGEQB 0累加器
11、累加器B大于等于大于等于0 分支操作循环操作.title Ex534.asm.mmregsstack.usectSTACK, 10h.bssx, 10.bssy,1table:.word1,2,3,4,5,6,7,8,9,10.defstartstart:STM#0, SWWSRSTM#stack+10h, SPCALLinitSTM#x, AR1STM#9,AR2LD#0,Aloop:ADD*AR1+, ABANZloop, *AR2-STLA,yB$init:STM#x, AR1RPT#9MVPDtable, *AR1+RET.end算术运算程序加法/减法指定堆栈空间指定堆栈空间为变量预留
12、空间为变量预留空间初值序列初值序列初始化变量初始化变量设置堆栈指针设置堆栈指针利用利用MAC和和RPT求乘累加和求乘累加和算术运算重复操作程序块重复操作数据块传送程序数据块传送程序小数运算程序小数运算程序0.5乘以327684000H-0.54000H乘以32768绝对值部分-18000H乘以32768绝对值部分C000H取反加18000H取反加101011000(0.625)(-0.125)0000000000001101(-0101)1101000(-0.078125)乘积结果为乘积结果为7 7位,送入累加器;为保持乘积的位,送入累加器;为保持乘积的符号不变,必须进行符号位扩展;因而,经过符号不变,必须进行符号位扩展;因而,经过符号扩展后累加器内容为符号扩展后累加器内容为8 8位:位:1 111010001101000(-0.1865)(-0.1865)出现了冗余的符号位出现了冗余的符号位( (两个符号位两个符号位) )!怎么办?!怎么办?ST1ST1的的FRCTFRCT小数方式控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服务区保安员奖惩制度
- 洁净室管制奖惩制度
- 清洁工奖惩制度范本
- 熟料外排奖惩制度
- 瓦斯管理奖惩制度
- 白酒销售员奖惩制度
- 着装奖惩制度
- 研发任务奖惩制度
- 秩序部考勤奖惩制度
- 统计联合奖惩制度
- 特种设备作业人员资格复审申请表
- 2026年吉安幼儿师范高等专科学校单招职业适应性考试题库附答案详解(夺分金卷)
- XX中学2026年春季学期“开学第一课”主题班会活动方案
- 2026年人教版三年级下册数学全册教学设计(春改版教材)
- 产品研发流程规范与指导(标准版)
- 华为班组长培训课件
- 2026公务员时事政治热点考试题目及答案
- 聚氨酯地坪施工方案及工艺要求
- 常压储罐完整性管理系统:构建、应用与展望
- 劳务合同2026年合同协议
- 2025年高职(金融科技应用)金融科技基础专项测试试题及答案
评论
0/150
提交评论