




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4.1 汇编程序功能4.2 伪操作4.3 汇编语言程序格式4.4 汇编语言程序的上机过程第4章 汇编语言程序格式4.1 汇编程序功能第4章 汇编语言程序格式把一个长度为8的字符串从源缓冲区转送到目的缓冲区中data1 segment source_buffer db personal data1 endsdata2 segment dest_buffer db 8 dup(?)data2 endscode1 segment assume cs:code1,ds:data1,es:data2start: mov ax,data1 mov ds,ax mov ax,data2 mov es,ax
2、lea si,source_buffer lea di,dest_buffer cld mov cx,8 rep movsbexit: mov ah,4ch int 21hcode1 ends end start把一个长度为8的字符串从源缓冲区转送到目的缓冲区中data11. 汇编程序功能汇编程序的主要功能: 检查源程序,给出出错信息。 产生目标文件(.obj)和列表文件(.lst)。 展开宏指令。1. 汇编程序功能汇编程序的主要功能:2. 程序运行步骤及生成的文件myfile.asm编辑程序汇编程序连接程序myfile.crfotherfiles.objmyfile.lstmyfile.ob
3、jmyfile.mapmyfile.exe2. 程序运行步骤及生成的文件myfile.asm编辑程序建立, 运行汇编语言程序过程1、编写汇编源代码asm文件2、用汇编程序(masm.exe) 源代码汇编成目标代码obj文件3、用连接程序(link.exe)将目标程序连接成可执行程序exe文件4、执行程序。上机过程:CMASM test1. ASMCLINK test1 . OBJCtest1.exe建立, 运行汇编语言程序过程1、编写汇编源代码asm文件3. 伪操作(伪指令) 伪操作是汇编程序对源程序进行汇编时处理的操作,完成处理器选择、存储模式定义、数据定义、存储器分配、指示程序开始结束等功
4、能。伪指令是命令汇编编译器执行某种操作的;指令是命令CPU执行某种操作的。3. 伪操作(伪指令) 伪操作是汇编程序对源(1) 段定义伪操作:segment和ends段名 SEGMENT ; 语句序列段名 ENDS格式:例如:(1) 段定义伪操作:segment和ends段名 SEGdata segment ; 定义数据段 data ends;-extra segment ; 定义附加段 extra ends;-code segment ; 定义代码段 assume cs:code, ds:data, es:extrastart: mov ax, data mov ds, ax ; 段地址 段寄
5、存器 code ends end startdata segment ; 定义数据段(2) 明确段和段寄存器的关系伪操作:assume格式:assume 分配情况1,分配情况2,分配情况1格式为:段寄存器名:段名说明:例如:(2) 明确段和段寄存器的关系伪操作:assume格式:asEND 标号 (3) 源程序结束伪操作:end格式:说明: end表示结束汇编,因此必须放 在源程序末尾。 “标号”应指向程序起始地址, 在主模块中必须指定,在子模 块中可以不指定。例如:END 标号 (3) 源程序结束伪操作:end(4)数据定义及存储器分配伪操作:DB、DW变量名 助记符 操作数 , 操作数 ,
6、 助记符:DB DWDATA_BYTE DB 10,4,10H,?DATA_WORD DW 100,100H,-5,? - 0AH 04H 10H - 64H 00H 00H 01H FBH FFH -DATA_BYTE DATA_WORD 例4.7:(4)数据定义及存储器分配伪操作:DB、DW变量名 ARRAY DB HELLO DB AB DW AB 48H 45H 4CH 4CH 4FH 41H 42H 42H 41H ARRAY VAR DB 100 DUP (?) DB 2 DUP (0,1,2,?)例4.8:例4.10:ARRAY DB HELLO 48H 45H 4CHOPER1
7、 DB ?, ?OPER2 DW ?, ? MOV OPER1, 0 ;字节指令 MOV OPER2, 0 ;字指令OPER1 DB 1, 2OPER2 DW 1234H, 5678H MOV AX, OPER1+1 MOV AL, OPER2 类型不匹配 MOV AX, WORD PTR OPER1+1 MOV AL, BYTE PTR OPER2(AX)=3402H (AL)=34HOPER1 DB ?, ?(AX)=3402H (5)表达式赋值伪操作:equ和=表达式名 EQU 表达式ALPHA EQU 9BETA EQU ALPHA+18BB EQU BP+8 格式:例如:(5)表达式
8、赋值伪操作:equ和=表达式名 EQU (6) 地址计数器与对准伪操作:地址计数器 $ :保存当前的偏移地址例如:JNE $+6 ;转向地址是 JNE 的首址 +6ARRAY DW 1, 2 , $+4 , 3 , 4 , $+4 00H 01H 00H 02H 00H 7CH 00H 03H 00H 04H 00H 82H ARRAY 007E00780074例4.17:假设ARRAY单元的首偏移地址为0074H(6) 地址计数器与对准伪操作:地址计数器 $ :保存当前的4. 汇编语言程序格式标号 指令 寄存器 说明程序或语句变量 伪指令 标号 的功能 宏指令 变量 常数 表达式源程序的每条
9、语句格式: 名字 操作 操作数 ; 注释标号/变量:段值、偏移量、类型三种属性 表达式:数字表达式 地址表达式举例说明4. 汇编语言程序格式标号 指令 寄存器 汇编源程序结构及格式由若干各段组成,最少要有一个代码段。代码段用来存放指令,其它段用来存放数据。每条语句占一行,一行只能放一条语句,分号表示注释,一行内分号以后的内容为注释,不汇编。源程序以end伪指令结束汇编,因此end以后若有程序是没有意义的。源程序以end后的标号地址为源程序起始地址。源程序结束时应加上终止程序返回DOS语句,否则程序不能正常终止。例如汇编源程序结构及格式由若干各段组成,最少要有一个代码段。例如(1) 算术操作符: 、 、 、ModVIDEO_BUF DB 25*80*2 DUP(?)ARRAY DW 1,2,3,4,5,6,7ARYEND DW ? MOV CX, (ARYEND-ARRAY)/2ADD AX, BLOCK+2 ; 符号地址常数 有意义 ; 时意义不明确MOV AX, BX+1 ; MOV AX, BX+1 ; 寄存器间接寻址例4.1819(1) 算术操作符: 、 、 、ModVID(2) 数值回送操作符: OFFSET、SEGOFFSET / SEG 变量 / 标号功能:回送变量或标号的偏址 / 段
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市雕塑招标打造艺术作品3篇
- 公证处委托书出具流程3篇
- 戒烟保证书的模板范文3篇
- 安全责任时刻警惕3篇
- 小产权转让有效简单协议书3篇
- 外业勘察分包合同样本模板范例3篇
- 买房委托书撰写3篇
- 电缆的热稳定性与热失控预防措施考核试卷
- 电信企业服务创新与业务增长策略考核试卷
- 育种中激素信号网络的调控考核试卷
- 全过程工程咨询投标方案(技术方案)
- 《住宅室内防水工程技术规范JGJ298-2013》
- 梨山老母玄妙真经
- 2《建筑机械使用安全技术规程》JGJ33-2012
- 病人呼吸心跳骤停抢救流程
- GB/T 4802.2-2008纺织品织物起毛起球性能的测定第2部分:改型马丁代尔法
- GB 14934-2016食品安全国家标准消毒餐(饮)具
- 英语高考3500词带音标
- 泥水平衡顶管施工方案(专家论证)
- 框架结构柱、梁板模板安装技术交底
- 呼吸衰竭临床表现及鉴别诊疗精编ppt
评论
0/150
提交评论