版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七部分 宏汇编初步概要l结构l记录l宏指令l条件宏汇编结构l结构:逻辑上相互关联的一组数据变量组合在一起模板或者模式。l字段:包含数据的结构成员l程序对一个结构的访问:结构的定义name strucfield-declarationsname ends 其中,字段为组成结构的各个内部变量,和普通db/dw等变量的声明是一样的结构的使用结构的使用涉及到三个步骤:例:员工结构employee strucidnum db 000000000lastname db 30 dup(0)years dw 0salaryhistory dw 4 dup(0)employee ends000000000(n
2、ull)00000salaryhistorylastnameyearsidnum例:坐标结构lcoord 结构定义了x, y坐标值coord structx dw ? ; offset 00y dw ? ; offset 02coord ends结构变量的声明l结构变量名是用户自定义的名称.datapoint1 coord point2 coord worker employee 初始化l使用 dup 操作符初始化一个或者多个数组字段元素:emp employee 结构数组l结构对象的数组使用dup初始化numpoints = 3allpoints coord numpoints dup()c
3、s_dept employee 20 dup()accounting employee 10 dup()结构变量的操作.dataworker employee mov ax,type employee ; 49mov ax,size employee ; 49mov ax,size worker ; 49mov ax,type employee.salaryhistory ; 2mov ax,length employee.salaryhistory ; 4mov ax,size employee.salaryhistory ; 8employee struc; bytesidnum db 0
4、00000000; 9lastname db 30 dup(0); 30years dw 0; 2salaryhistory dw 4 dup(0); 8employee ends; 49mov dx,worker.yearsmov worker.salaryhistory,2000 ; first salarymov worker.salaryhistory+4,3000 ; second salarymov dx,offset worker.lastnamemov si,offset workermov ax,(employee ptr si).yearsmov ax,si.years ;
5、 invalid operand (ambiguous)例1:p164l学生成绩的结构数组记录l记录的概念与定义l记录的存储分配和初始化l对记录的相关操作概念l记录和结构类似,但不同之处是以二进制数的位数 bit 为字段的基本单位。记录的定义l格式举例lrec1 record f1:4, f2:2, f3:6, f4:4lrec2 record fe1:2, f2e:4, fe3:1, fe4:1lrec3 record ff1:3, ff2:4, ff3:3, ff4:3lrec4 record fd1:3 =100b, fd2:2 = 2, fd3:1=1记录变量的声明l格式记录的运算符l
6、宽度运算符对记录和字段的操作(1/2)l对记录变量的操作对记录和字段的操作(2/2)l对记录字段的操作宏l概念l宏定义l宏调用l举例宏的引入l例如:经常需要显示单个字符宏的概念l宏使用过程:定义、调用和展开宏定义定义格式macroname macro parameter-1, parameter-2,.statement-listendm例1:input宏input macro mov ah, 01h int 21h and al, 0fh endm定义:.codeinput调用:从键盘输入09数字,保存在al中例2:output宏output macro charpush axmov al,
7、charmov ah,02hint 21hpop axendm定义:.codeoutput a调用:从屏幕输出一个字符例3:显示字符串的宏,需要保存寄存器 display macrostring宏调用 (1 of 2)l当调用宏时,各个实参和形参要对应l当宏展开时,各个形参以对应的实参替换l当宏展开时,产生汇编语言的源代码l举例:宏调用 (2 of 2)parametermacrotextargumentreplacesdeclaredinsideconsistsofpassesmacroinvocationstatementgeneratesassemblycode宏、形参和实参的关系:&与
8、l&locall为了防止宏中所使用的标号或变量名和程序中定义的其它标识符冲突,解决的方法:宏库l把一些常用的宏集中在相应的文件中,称为库文件l使用时,只需在开始处利用include包含库文件进来即可。重复汇编lrept伪指令lirp伪指令lirpc伪指令rept 伪指令lrept 伪指令重复执行指定次数的语句块l语法:rept constexpressionstatementsendmconstexpression 为无符号整数表达式,决定了重复的次数例1l例1:例2ival = 0rept 100dw ivalival = ival + 10endm以下的代码产生 100 个dw数据序列:1
9、0, 20, 30, . . . 不定重复l重复的次数由实参的个数决定,每次循环时以相应的实参代替形参irp 形参, statementsendm例l例1不定重复字符l重复的次数由string的字符个数决定,每次循环时以相应的字符依次代替形参irpc 形参, stringstatementsendm例l例1:条件汇编lif/ife, else, 和 endif if, else, 和 endif 伪指令if boolean-expressionstatementselsestatementsendifif若布尔表达式不为0时,相应的语句块被汇编;否则,汇编其它的语句块。ife若布尔表达式为0时,则汇编举例:p176例:writestrinwritestr macro stringifb echo -echo * error: parame
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土木工程的实习报告4篇
- 2025年云数融合项目规划申请报告
- 2025年新型电子时间继电器项目申请报告模范
- 2024-2025学年武汉市乔口区三上数学期末预测试题含解析
- 银行的职员辞职报告(集合15篇)
- 出纳毕业生的实习报告
- 2025年压缩式垃圾车项目规划申请报告模范
- 平凡的世界读书有感2022
- 急诊2022年护理工作计划
- 律师事务所的实习报告模板集锦7篇
- 3《声声慢(寻寻觅觅)》练习(含答案)统编版高中语文必修上册-1
- 细胞自噬与疾病关系
- 《迎接期末考试动员会》PPT班会课件
- 交易所商业计划书
- 2024年华电江苏能源有限公司招聘笔试参考题库含答案解析
- 北京环卫集团管理制度
- 《婚姻家庭纠纷调解》课件
- 远程银行行业背景分析
- 如何提高孩子的注意力和专注力
- 2022-2023学年海南省海口市重点中学八年级(上)期末物理试卷(含解析)
- 2019-2020学年四川省南充市九年级(上)期末数学试卷
评论
0/150
提交评论