文档详情

第3-2章 伪指令和程序格式.ppt

发布:2017-06-21约7.69千字共36页下载文档
文本预览下载声明
语句格式 指令性语句: 操作码 指定段址伪指令 地址计数器$的常用使用方法 汇编语言源程序结构 * ? 汇编程序功能 ? 伪操作 ? 汇编语言程序格式 ? 汇编语言程序的上机过程 第3-2章 伪指令和程序格式 伪操作(伪指令) 伪操作是汇编程序对源程序进行汇编时处理的操作,完成处理器选择、存储模式定义、数据定义、存储器分配、指示程序开始结束等功能。 处理器选择伪操作 段定义伪操作 程序开始和结束伪操作 数据定义及存储器分配伪操作 表达式赋值伪操作 地址计数器与对准伪操作 基数控制伪操作 语句类型 指令(性)语句 完成一定操作功能,能够翻译成机器代码的语句 指示性语句(伪指令语句) 为汇编程序在翻译汇编语言源程序时提供有关信息,并不翻译成机器代码 语句类型及格式 语句类型 #include stdafx.h #include stdio.h int main(int argc, char* argv[]) { int a=1,b=2,c; c=a+b; printf(“c=%d\n,c); return 0; } 用C语言编程实现 c = a + b,并在屏幕上显示出结果。 例:C语言编程的格式 指示性语句 指令性语句 例:完成两个字节数据相加。 DATA SEGMENT ;段定义开始(DATA段) BUF1 DB 34H ;第1个加数 BUF2 DB 2AH ;第2个加数 SUM DB ? ;准备用来存放和数的单元 DATA ENDS ;段定义结束(DATA段) CODE SEGMENT ;段定义开始(CODE段) ASSUME CS:CODE,DS:DATA ;规定DATA、CODE分别为数据段和代码段 START: MOV AX,DATA MOV DS,AX ;给数据段寄存器DS赋值 MOV AL,BUF1 ;取第1个加数 ADD AL,BUF2 ;和第2个加数相加 MOV SUM,AL ;存放结果 MOV AH,4CH INT 21H ;返回DOS状态 CODE ENDS ;段定义结束(CODE段) END START ;整个源程序结束 伪指令语句 指令语句 一个完整程序 格式:[名字:] 操作码 [操作数[,操作数]] [;注释] 伪指令语句: 格式:[名字] 伪操作 [操作数[,操作数,…]] [;注释] 含义:由用户按一定规则定义的标识符 组成:英文字母、数字、特殊符号 形式:标号和变量 名字定义满足的规则 (1)数字不能作为第一个字符 (2)单独的问号(?)不能作为名字 (3)最大有效长度为31 (4)保留字不能作为名字使用 语句的说明部分 含义:指明操作的性质或功能。 书写规则:操作码与操作数之间用空格分开。 操作数 含义:指定参与操作的数据。 个数:一般指令,1个或2个,也可以没有; 伪指令和宏指令,可以有多个。 书写规则:操作数多于1个时,操作数之间用 逗号分开 ◆ 段定义伪操作: 完整的段定义格式 data segment ; 定义数据段 … data ends ; extra segment ; 定义附加段 … extra ends ; code segment ; 定义代码段 assume cs:code, ds:data, es:extra start: mov ax, data mov ds, ax ; 段地址 ? 段寄存器 … code ends end
显示全部
相似文档