清华大学:《汇编语言程序设计》第四章 汇编语言程序格式

第四章汇编语言程序格式 汇编程序功能 伪操作 汇编语言程序格式 汇编语言程序的上机过程
1 • 汇编程序功能 • 伪操作 • 汇编语言程序格式 • 汇编语言程序的上机过程 第四章 汇编语言程序格式

1.汇编程序功能 编辑程序 汇编程序 program. asm program. Ob] 连接程序 program. exe 汇编程序的主要功能: 检查源程序,给出出错信息 产生目标文件(.0bj)和列表文件(1st) 展开宏指令
2 编辑程序 汇编程序 连接程序 program.asm program.obj program.exe 1. 汇编程序功能 汇编程序的主要功能: • 检查源程序,给出出错信息 • 产生目标文件(.obj)和列表文件(.lst) • 展开宏指令

2.伪操作(伪指令) 是汇编程序对源程序进行汇编时处理的操作,完成 处理器选择、存储模式定义、数据定义、存储器分配、 指示程序开始结束等功能。 处理器选择伪操作 段定义伪操作 程序开始和结束伪操作 数据定义及存储器分配伪操作 表达式赋值伪操作 地址计数器与对准伪操作 基数控制伪操作
3 2. 伪操作(伪指令) 是汇编程序对源程序进行汇编时处理的操作,完成 处理器选择、存储模式定义、数据定义、存储器分配、 指示程序开始结束等功能。 ▪ 处理器选择伪操作 ▪ 段定义伪操作 ▪ 程序开始和结束伪操作 ▪ 数据定义及存储器分配伪操作 ▪ 表达式赋值伪操作 ▪ 地址计数器与对准伪操作 ▪ 基数控制伪操作

处理器选择伪操作 8086选择8086指令系统 286选择80286指令系统 286P选择保护模式下的80286指令系统 386选择80386指令系统 386P选择保护模式下的80386指令系统 486选择80486指令系统 486P选择保护模式下的80486指令系统 586选择 Pentium指令系统 586P选择保护模式下的 Pentium指令系统
4 .8086 选择 8086 指令系统 .286 选择 80286 指令系统 .286P 选择保护模式下的80286 指令系统 .386 选择 80386 指令系统 .386P 选择保护模式下的80386 指令系统 .486 选择 80486 指令系统 .486P 选择保护模式下的80486 指令系统 .586 选择 Pentium 指令系统 .586P 选择保护模式下的Pentium 指令系统 处理器选择伪操作:

段定义伪操作 完整的段定义伪操作 data segment 定义数据段 data ends extra segment 定义附加段 extra ends 定义代码段 DS code segment assume cs: code, ds: data. es: extra PSP start mov ax. data 文件头装入模块 mov ds. ax 段地址→段寄存器 code ends end start EXE程序的内存映象图 5
5 段定义伪操作: 完整的段定义伪操作 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 start PSP DS → ES SS→ CS→ EXE 程序的内存映象图 装 入 模 块 文 件 头

code segment main proc far assume code segment start main proc fa push ds assume mov ax 0 start push ax ret mov ax. 4c00h main endp int 21h code ends main endp end start code ends end start
6 …… code segment main proc far assume …… start: push ds mov ax, 0 push ax …… ret main endp code ends end start …… code segment main proc far assume …… start: …… …… mov ax,4c00h int 21h main endp code ends end start

data segment data ends stack segment dw 100 dup (? tos label ord stack ends code segment maIn proc ar assume cs: code, ds data ss: stack start mov ax. stack mov SS ax mov sp, offset tos push ds sub ax, ax push ES ax PSP mov ax, data moV ds, ax Cs→ ret main endp code ends end start 7
7 data segment …… data ends stack segment dw 100 dup (?) tos label word stack ends code segment main proc far assume cs:code, ds:data, ss:stack start: mov ax, stack mov ss, ax mov sp, offset tos push ds sub ax, ax push ax mov ax, data mov ds, ax …… ret main endp code ends end start PSP DS→ ES SS→ CS→

data segment data ends tack segment stack dw 100 dup (? tos label word stack ends e segment start. push ds sub ax, ax push ax PSP mov ax. data moV ds ax ret code ends en d start
8 PSP DS→ ES SS→ CS→ data segment …… data ends stack segment stack dw 100 dup (?) tos label word stack ends code segment …… start: push ds sub ax, ax push ax mov ax, data mov ds, ax …… ret …… code ends end start

段名 SEGMENT[定位类型][组合类型][使用类型][‘类别’] 语句序列 段名ENDS (1)定位类型 align type PARA BYTE WORD DWORD PAGE (2)组合类型 combine type PRIVATE PUBLIC COMMon STACK AT exp (3)使用类型 use type USE16 USE32 (4)类别‘ class
9 段名 SEGMENT [ 定位类型 ] [ 组合类型 ] [ 使用类型 ] [ ‘类别’ ] …… …… ; 语句序列 段名 ENDS (1) 定位类型 align_type PARA BYTE WORD DWORD PAGE (2) 组合类型 combine_type PRIVATE PUBLIC COMMON STACK AT exp (3) 使用类型 use_type USE16 USE32 (4) 类别 ‘class’

例:; proadd1.asm extrn proadd far data segment common ary dw1,2,3,4,5,6,7,8,9,10 count dw 10 sum dw? data ends codel segment maIn proc f assume cs: code1 ds: data np start: pus ds su ax. ax push ax moV ax. data moV ds. ax call far ptr proadd ret main endp code1 ends end start 10
10 例: ; proadd1.asm extrn proadd : far data segment common ary dw 1,2,3,4,5,6,7,8,9,10 count dw 10 sum dw ? data ends code1 segment main proc far assume cs:code1, ds:data start: push ds sub ax, ax push ax mov ax, data mov ds, ax call far ptr proadd ret main endp code1 ends end start
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《汇编语言程序设计》第六章 子程序结构.ppt
- 清华大学:《汇编语言程序设计》第八章 输入输出程序设计.ppt
- 清华大学:《汇编语言程序设计》第五章 循环与分支程序设计.ppt
- 清华大学:《汇编语言程序设计》第二章 80x86计算机组织.ppt
- 清华大学:《汇编语言程序设计》第九章 BIOS和DOS中断.ppt
- 清华大学:《汇编语言程序设计》第三章(3-3) 逻辑指令.ppt
- 清华大学:《汇编语言程序设计》第三章(3-2) 8086的指令系统.ppt
- 清华大学:《汇编语言程序设计》第三章(3-1) 8086的寻址方式.ppt
- 清华大学:《汇编语言程序设计》第七章 高级汇编语言技术.ppt
- 清华大学:《汇编语言程序设计》第一章 基础知识.ppt
- 清华大学:《汇编语言程序设计》汇编语言程序与高级语言程序的连接.ppt
- 徐州工程学院:《网页制作与网站建设》讲义.docx
- 《计算机进程管理》讲义.ppt
- 《计算机辅助设计——机电系统CAD》教学讲义教材:附录二 常见机械CAD软件简介.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:附录一 MATLAB 软件简介.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第八章 机电系统计算机辅助设计的发展.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第七章 机电系统的智能设计理论和方法.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第六章 产品数据管理技术.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第五章 机械产品模型理论及常用建模技术.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第四章 机电系统动态性能的计算机仿真.doc
- 清华大学:《汇编语言程序设计》绪论.ppt
- 《数据库原理与应用》ppt电子书.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第二章 C++基础知识.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第九章 多态性.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第十章 模板.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第四章 函数.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第十二章 异常处理.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第五章 类与对象.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第七章 动态内存分配.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第八章 继承性.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第十三章 图书馆设计.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第三章 基本控制结构程序设计.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第六章 数据结构.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)习题课.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)模板习题.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第十一章 流类库和输入/输出.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第一章 软件设计.ppt
- 深圳信息职院:《电子商务》双语版 UNIT 17-01 Outlook Express6说明.ppt
- 深圳信息职院:《电子商务》双语版 UNIT18-01 FoxMail的使用.ppt
- 深圳信息职院:《电子商务》双语版 UNIT19-01 文档签名与安全邮件综合操作.ppt