x86实模式汇编的运行环境参考PPT
合集下载
第二章 80X86微处理器PPT课件
❖ 寄存器 ❖ 存储器分段及地址 ❖ 堆栈 ❖ 微处理器的工作模式 ❖ 发展新技术
1
31
EAX EBX ECX EDX ESP EBP ESI EDI
EIP EFLAGS
15
0
AH AL AX BH BL BX CH CL CX DH DL DX
SP BP SI DI
IP FLAGS
CS DS ES SS FS GS
❖ 堆栈的操作特点:
❖ 实模式下的堆栈为16位宽(字宽),堆栈操作指令(PUSH 指令或POP指令)对堆栈的操作总是以字为单位进行。 即要压栈(执行PUSH指令)时,先将SP的值减2,然后 将16位的信息压入新的栈顶; 要弹栈(执行POP指令)时, 先从当前栈顶取出16位的信息,然后将SP的值加2。可 概括为: “压栈时, 先修改栈指针后压入”, “弹 栈时, 先弹出后修改栈指针”。
8
FFFFFH
FFFF0H FFFEFH
专用区
通用区
00400H 003FFH
00000H
专用区
实模式下存储器地址空间
9
❖ 为什麽要采用存储器“分段”技术?
实模式下CPU可直接寻址的地址空间为220=1M字节 单元。CPU需输出20位地址信息才能实现对1M字节单 元存储空间的寻址。但实模式下CPU中所使用的寄存 器均是16位的,内部ALU也只能进行16位运算,其寻 址范围局限在216=65536(64K)字节单元。为了实现对 1M字节单元的寻址,80x86系统采用了存储器分段技 术。 ❖ 各个逻辑段在实际的存储空间中可以完全分开,也可
堆栈的结构:
❖ 堆栈是在存储器中实现的,并由堆栈段寄存器SS和堆栈
指针寄存器SP来定位。SS寄存器存放堆栈段的段基值,
1
31
EAX EBX ECX EDX ESP EBP ESI EDI
EIP EFLAGS
15
0
AH AL AX BH BL BX CH CL CX DH DL DX
SP BP SI DI
IP FLAGS
CS DS ES SS FS GS
❖ 堆栈的操作特点:
❖ 实模式下的堆栈为16位宽(字宽),堆栈操作指令(PUSH 指令或POP指令)对堆栈的操作总是以字为单位进行。 即要压栈(执行PUSH指令)时,先将SP的值减2,然后 将16位的信息压入新的栈顶; 要弹栈(执行POP指令)时, 先从当前栈顶取出16位的信息,然后将SP的值加2。可 概括为: “压栈时, 先修改栈指针后压入”, “弹 栈时, 先弹出后修改栈指针”。
8
FFFFFH
FFFF0H FFFEFH
专用区
通用区
00400H 003FFH
00000H
专用区
实模式下存储器地址空间
9
❖ 为什麽要采用存储器“分段”技术?
实模式下CPU可直接寻址的地址空间为220=1M字节 单元。CPU需输出20位地址信息才能实现对1M字节单 元存储空间的寻址。但实模式下CPU中所使用的寄存 器均是16位的,内部ALU也只能进行16位运算,其寻 址范围局限在216=65536(64K)字节单元。为了实现对 1M字节单元的寻址,80x86系统采用了存储器分段技 术。 ❖ 各个逻辑段在实际的存储空间中可以完全分开,也可
堆栈的结构:
❖ 堆栈是在存储器中实现的,并由堆栈段寄存器SS和堆栈
指针寄存器SP来定位。SS寄存器存放堆栈段的段基值,
教学课件第11章80x86汇编语言程序设计
立即寻址示例
MOV AH, -40 ; -40AH MOV AX, 34D8H ; 34HAH, D8HAL MOV AX, -40 ; 0FFD8H(-40)AX MOV EAX, 12345678H ;12345678HEAX
2
2024/8/2
现代微机原理与接口技术
2、寄存器寻址 操作数存放在某个寄存器中,指令指定寄存器号
33250H
33250H 20H
43H
4320H AX
18
2024/8/2
现代微机原理与接口技术
8、比例变址寻址 操作数的有效地址是变址寄存器的内容乘以指令中
指定的比例因子及位移量之和
指
令
变址寄存器 比例因子位移量
段基地址
变址寄存器 变址值 EA
下标 *
++
存储器 操作数
19
2024/8/2
比例变址寻址示例
数据段
现代微机原理与接口技术
物理地址 10A00H + 1000H 11A00H
11A00H 30H 50H
50H 30H AX
(本章中图示存储器地址从上到下递增)
9
2024/8/2
直接寻址示例2 MOV BL, ES:[0100H]
设(ES)=3000H (DS)=2000H
30100H 4B 00
现代微机原理与接口技术
物理地址 30000H + 0100H 30100H
4B BL
在汇编语言指令中,可以用符号地址代替数值地址
如:MOV AX, BUFF 或 MOV AX, [BUFF] 其中BUFF为存放数据单元的符号地址。
10
2024/8/2
操作系统的运行环境ppt课件
控制器负责控制程序运行的流程,包括取指令、维
护CPU状态、CPU与内存的交互等等。
寄存器是指令在CPU内部作处理的过程中暂存数据、
地址以及指令信息的存储设备,在计算机的存储系
统中它具有最快的访问速度。
高速缓存处于CPU和物理内存之间,一般由控制器中
的内存管理单元(MMU:Memory Management Unit)
• 特权指令:只能由操作系统使用的指令。如 启动I/O设备、设置时钟、控制中断屏蔽位、 清主存、设置中断向量,修改PSW等。
• 非特权指令:一般用户使用的指令。如算术 逻辑运算、访问内存、访管指令等
• CPU如何知道当前运行的是操作系统还是一般 应用软件?
依赖于处理器状态ppt课件
10
Which of the following instructions
ppt课件
4
控制和状态寄存器
• 用于控制处理器的操作 • 大部分对于用户是不可见的 • 一部分可以在某种特权模式(由OS使用)下
访问
ppt课件
5
常见的控制和状态寄存器
• 程序计数器(PC:Program Counter), 记录将要取出的指令的地址
• 指令寄存器(IR:Instruction Register), 包含最近取出的指令
• I/O指令:
处理器和I/O设备间数据传送和命令发送
• 算术逻辑指令(数据处理指令):
执行数据算术和逻辑操作
• 控制转移指令:
指定一个新的指令的执行起点
• 处理器控制指令:
修改处理器状态,改变处理器工作方式
ppt课件
9
特权指令和非特权指令
• 使用多道程序设计技术的计算机指令系统必 须要区分为特权指令和非特权指令
80x86汇编语言程序设计 第3章 80x86指令系统和寻址方式PPT课件
合肥学院 计算机科学与技术系 何立新
《汇编语言程序设计》
3.2 80x86寻址方式
3.2.1 寻址、寻址方式的概念
寻址就是寻找操作数的地址。 寻址方式就是寻找操作数的方法。
操作数可以跟随在指令操作码之后,称为立即数;操作 数也可以存放在CPU内部的寄存器中,称为寄存器操作数。 绝大多数的操作数存放在内存储器中,称为存储器操作数。 指令指定操作数的位置,即给出地址信息,在执行时需要 根据这个地址信息找到需要的操作数。
合肥学院 计算机科学与技术系 何立新
《汇编语言程序设计》
第3章 80x86指令系统和寻址方式
教学要求:
1. 掌握一般指令系统的基本概念:指令格式、 功能和注意事项。
2. 重点掌握8086/8088指令系统中,各指令的 格式、寻址方式、指令类型 。
3. 了解其他(奔腾等)的寻址方式和指令类型。
合肥学院 计算机科学与技术系 何立新
•基址变址寻址
MOV AX , [ BP ] [ DI ]
•相对基址变址寻址 MOV AX , MASK [ BX ] [ SI ]
合肥学院 计算机科学与技术系 何立新
《汇编语言程序设计》
1) 立即寻址方式
定义:操作数作为指令的一部分而直接写在指令中,这种 操作数称为立即数,这种寻址方式也就称为立即数寻址方 式。
执行:4576H→AX
执行后:(AX)=4576H
CS→
AX
45
76
OP
76H
45H
MOV AX,4576H 指令的存储形式
合肥学院 计算机科学与技术系 何立新
《汇编语言程序设计》
2) 寄存器寻址方式
定义:指令所要的操作数已存储在某寄存器中,或把目标操 作数存入寄存器。把在指令中指出所使用寄存器(即:寄存 器的助记符)的寻址方式称为寄存器寻址方式。
汇编语言的运行环境
• Q命令 命令
– 格式:Q 格式命令
– 格式:E <地址 格式: 地址> <单元内容表 单元内容表> 地址 单元内容表 – 功能:将<单元内容表 逐一写入由 地址 开 单元内容表>逐一写入由 地址>开 功能: 单元内容表 逐一写入由<地址 始的一片单元。 始的一片单元。
– 退出 退出TD
• 先按 先按Esc键关闭所有对话框,然后按Alt+X。 键关闭所有对话框,然后按 键关闭所有对话框 。
菜单结构
• 菜单条,菜单项 菜单条,
– File,Edit , View,Run,Window,Help等 , , , , 等
• 状态条
– Normal:正常情况下使用的功能键 : – Ctrl:先按住 :先按住Ctrl键,再按相应的快捷键。 键 再按相应的快捷键。 – Alt :先按住Alt键,再按相应的快捷键。 先按住 键 再按相应的快捷键。
– 功能:键入该命令后,显示段地址和位移,用 功能:键入该命令后,显示段地址和位移, 户可以键入汇编命令,逐条汇编成代码指令。 户可以键入汇编命令,逐条汇编成代码指令。 若直接按回车,则返回到提示符状态。 若直接按回车,则返回到提示符状态。
• D命令 命令
– 格式
• D <地址 地址> 地址 • D <范围 范围> 范围 •D ;显示指定内存范围的内容 显示CS:100起始地址的内容 ;显示 起始地址的内容
• 单步执行
– F7(Trace into) ( ) – F8(Step over) ( )
DSEG SEGMENT S1 DB 'ABCDEFGHIJKLMNOPQRSTUVW' DB 'XYZ0123' S2 DB 30 DUP(?) DSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV SI,OFFSET S1 MOV DI,OFFSET S2 MOV CX,30 NEXT: MOV AL,[SI] MOV [DI],AL INC SI INC DI LOOP NEXT MOV AH,4CH INT 21H CSEG ENDS END START
《X86指令系统》课件
ຫໍສະໝຸດ 性能优化编译器优化
使用优化编译器可以改善程序的执行效率和性能,如循环展开、向量化和代码优化。
CPU缓存优化
通过合理地利用CPU缓存,可以减少缓存失效,提高程序的访问速度和执行效率。
多核并行优化
利用多核处理器的并行性能,可以将计算任务分解为多个并行子任务,从而提高程序的执行 效率。
X86架构发展
8086
2 浏览器
现代浏览器使用X86架构来执行JavaScript和其他浏览器功能,以提供快速和流畅的用户体 验。
3 游戏引擎
许多游戏引擎使用X86架构来实现图形渲染、物理模拟和游戏逻辑等关键功能。
8086是Intel公司推出的一款16位 微处理器,是X86指令系统的基 础。
Pentium
Pentium是Intel公司推出的一系列 高性能微处理器,对X86架构进 行了多项改进。
x86-64
x86-64是X86指令系统的64位扩展, 提供更大的寻址空间和更高的计 算性能。
应用实例
1 操作系统
X86架构广泛应用于各种操作系统,如Windows、Linux和Mac OS。
多线程程序中,线程之间 需要同步访问共享资源, 以避免竞争条件和数据不 一致。
内存管理
1
页式内存管理
2
页式内存管理是X86架构中常用的内存管
理方式,将内存划分为固定大小的页面。
3
内存模型
X86架构使用分段式内存模型,将内存划 分为逻辑段,每个逻辑段有自己的访问 权限和地址空间。
分段式内存管理
分段式内存管理是X86早期采用的一种内 存管理方式,将内存划分为逻辑段,每 个逻辑段有自己的访问权限和地址空间。
《X86指令系统》PPT课 件
使用优化编译器可以改善程序的执行效率和性能,如循环展开、向量化和代码优化。
CPU缓存优化
通过合理地利用CPU缓存,可以减少缓存失效,提高程序的访问速度和执行效率。
多核并行优化
利用多核处理器的并行性能,可以将计算任务分解为多个并行子任务,从而提高程序的执行 效率。
X86架构发展
8086
2 浏览器
现代浏览器使用X86架构来执行JavaScript和其他浏览器功能,以提供快速和流畅的用户体 验。
3 游戏引擎
许多游戏引擎使用X86架构来实现图形渲染、物理模拟和游戏逻辑等关键功能。
8086是Intel公司推出的一款16位 微处理器,是X86指令系统的基 础。
Pentium
Pentium是Intel公司推出的一系列 高性能微处理器,对X86架构进 行了多项改进。
x86-64
x86-64是X86指令系统的64位扩展, 提供更大的寻址空间和更高的计 算性能。
应用实例
1 操作系统
X86架构广泛应用于各种操作系统,如Windows、Linux和Mac OS。
多线程程序中,线程之间 需要同步访问共享资源, 以避免竞争条件和数据不 一致。
内存管理
1
页式内存管理
2
页式内存管理是X86架构中常用的内存管
理方式,将内存划分为固定大小的页面。
3
内存模型
X86架构使用分段式内存模型,将内存划 分为逻辑段,每个逻辑段有自己的访问 权限和地址空间。
分段式内存管理
分段式内存管理是X86早期采用的一种内 存管理方式,将内存划分为逻辑段,每 个逻辑段有自己的访问权限和地址空间。
《X86指令系统》PPT课 件
汇编语言程序设计第2章 80 x86计算机组织结构.ppt
传送地址,内存中的每个字节都对应着一个唯一 的地址,I/O设备也是如此。 地址总线的位数与寻址空间有着直接的关系。 例如:8086/8088地址总线20根,则可访问的地址 为:
220 =1,048,576 = 1M
则8086/8088最大可用的存储空间为1M字节。
South china normal university
• 存储器由若干存储单元构成,存储单元的最小 单位是字节。
• 将所有的存储单元按顺序编号,即每一个字 节有一个唯一的编号,这些编号称为存储单 元的地址(也称为物理地址)。
South china normal university
• 若CPU要存取某个存储单元的内 容,则首先提供该存储单元的 地址,然后按地址选中对应的 存储单元,就可以对单元内容 进行存取操作。
外部设备
在微机系统中最常用的外部设备有: • 键盘 • 显示器 • 打印机 • 外部存储器等
CPU与外部设备交换信息是通过I/O接口电 路来完成的。
South china normal university
2.2 80X86CPU的寄存器 通用寄存器 控制寄存器 段寄存器
South china normal university
South china normal university
• IBM PC机及其 兼容机的存储 器系统主要分 为3个主要部 分:程序暂驻 区 (TPA) 、 系 统内存区和扩 展 存 储 区 (XMS)
South china normal university 图2-2 IBM PC机及其兼容机的存储器映像
South china normal university
1. 数据寄存器 (AX、BX、CX、DX)
220 =1,048,576 = 1M
则8086/8088最大可用的存储空间为1M字节。
South china normal university
• 存储器由若干存储单元构成,存储单元的最小 单位是字节。
• 将所有的存储单元按顺序编号,即每一个字 节有一个唯一的编号,这些编号称为存储单 元的地址(也称为物理地址)。
South china normal university
• 若CPU要存取某个存储单元的内 容,则首先提供该存储单元的 地址,然后按地址选中对应的 存储单元,就可以对单元内容 进行存取操作。
外部设备
在微机系统中最常用的外部设备有: • 键盘 • 显示器 • 打印机 • 外部存储器等
CPU与外部设备交换信息是通过I/O接口电 路来完成的。
South china normal university
2.2 80X86CPU的寄存器 通用寄存器 控制寄存器 段寄存器
South china normal university
South china normal university
• IBM PC机及其 兼容机的存储 器系统主要分 为3个主要部 分:程序暂驻 区 (TPA) 、 系 统内存区和扩 展 存 储 区 (XMS)
South china normal university 图2-2 IBM PC机及其兼容机的存储器映像
South china normal university
1. 数据寄存器 (AX、BX、CX、DX)
运行环境相关知识讲解课件演示(71张)
–参数域放在前面,便于调用过程进行参数传递,同时, 被调用过程也可很方便地进行访问。
–返回值域放在最前面,便于调用过程可以根据自己的栈 指针访问该区域,取回返回值。
–局部数据/临时数据安排在最后,其大小变化不会影响 到活动记录中其他数据的存取。并且调用过程也无权访 问被调用过程中的局部数据。
11
局部数据的安排
存放中间计算结果
根据确定每个域所需空间大小的时间早晚安排其位置。
(1) 早:中间 晚:两头
(2) 用于通信:前面 自己用的:后面 10
活动记录中内容的安排原则
大小能够较早确定的区域放在活动记录的中间, 大小较晚才能确定、并且变化较多的区域放在活 动记录的两头。
–控制链、访问链、机器状态域,是编译器设计的一部分, 编译器构造时就可以确定它们的大小,所以把这些区域 放在活动记录的中间。
表示,它们对应的内存地址由编译程序在编译时或由其生 成的目标程序在运行时进行分配。
存储的组织及管理是编译程序要完成的一个复杂而 又十分重要的工作。
2
运行环境
7.1 程序运行时的存储组织 7.2 存储分配策略 7.3 访问非局部名字 7.4 参数传递机制
小结
3
7.1 程序运行时的存储组织
概念:过程与活动 一、程序运行空间的划分 二、控制栈与活动记录 三、作用域及名字绑定
21
存储空间分配
代码区
CNSUME的代码 PRDUCE的代码
静态数据区
CHARACTER *50 BUF INTEGER NEXT CHARACTER C
CNSUME 的活动记录
CHARACTER *80 BUFFER INTEGER NEXT
PRDUCE 的活动记录
–返回值域放在最前面,便于调用过程可以根据自己的栈 指针访问该区域,取回返回值。
–局部数据/临时数据安排在最后,其大小变化不会影响 到活动记录中其他数据的存取。并且调用过程也无权访 问被调用过程中的局部数据。
11
局部数据的安排
存放中间计算结果
根据确定每个域所需空间大小的时间早晚安排其位置。
(1) 早:中间 晚:两头
(2) 用于通信:前面 自己用的:后面 10
活动记录中内容的安排原则
大小能够较早确定的区域放在活动记录的中间, 大小较晚才能确定、并且变化较多的区域放在活 动记录的两头。
–控制链、访问链、机器状态域,是编译器设计的一部分, 编译器构造时就可以确定它们的大小,所以把这些区域 放在活动记录的中间。
表示,它们对应的内存地址由编译程序在编译时或由其生 成的目标程序在运行时进行分配。
存储的组织及管理是编译程序要完成的一个复杂而 又十分重要的工作。
2
运行环境
7.1 程序运行时的存储组织 7.2 存储分配策略 7.3 访问非局部名字 7.4 参数传递机制
小结
3
7.1 程序运行时的存储组织
概念:过程与活动 一、程序运行空间的划分 二、控制栈与活动记录 三、作用域及名字绑定
21
存储空间分配
代码区
CNSUME的代码 PRDUCE的代码
静态数据区
CHARACTER *50 BUF INTEGER NEXT CHARACTER C
CNSUME 的活动记录
CHARACTER *80 BUFFER INTEGER NEXT
PRDUCE 的活动记录
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言程序设计
-------朱耀庭
---------朱耀庭
1
第二章 80x86实模式汇编的运行环境
2.1 DOS下Edit的使用 2.2 Debug调试汇编程序 2.3 EMU8086的使用 2.4 用MASM(或ASM)运行汇编语言程序
2.5 Windows下虚拟DOS运行环境的搭建
键或选择Save as命令,在弹出的Save as对话框中输入 要保存的文件路径和文件名,这里是D:\masm\Ex21.asm,然后单击OK按钮保存所编辑的汇编源程序,如 图2-5所示。
图2-5 保存源程序
2.2 Debug调试汇编程序
2.2.1 用Debug运行汇编语言程序 2.2.2 典型Debug命令剖析 2.2.3 Debug命令综述
❖ Edit窗口的上方是命令菜单选 项:File、Edit、Search、 View、Options和Help。通过 组合键Alt+菜单项的首字母,
可以打开相应的菜单选项。例
如,按Alt+F组合键弹出File菜 单,如图2-3所示。
图2-3 命令菜单窗口
2. 用Edit编辑汇编语言程序
❖ 程序设计的过程又分成几步:提取要处理问题的数学模型, 寻找合适的算法,在已知算法的基础上遵循汇编语言规范, 构思程序流程,必要时画出流程图(也称作框图), 最后按照流程图用汇编语句逐一实现流程图中的每一步, 形成源程序。
2.1.1 汇编源程序文件的编辑及相关知识
❖ 由源程序形成源程序文件的过程,就是利用文本编辑工具 将源程序编辑成源程序文件的过程。既然汇编语言源程序 文件是无格式文本文件,因此可以用任何文本编辑工具编 辑,包括Windows下的“记事本”、“写字板”,乃至 “Word”都可以承担。如果使用“Word”一定要保存为无 格式的纯文本文件,而不是.doc或其他文件格式。
2.2.1 用Debug运行汇编语言程序
❖ Debug调试程序是以DOS外部命令程序的形式提供的,它 的文件名是。在进入Debug的提示符“-”之 后,用户可以通过Debug的命令输入汇编源程序,并用相 应命令将其汇编成机器语言程序,然后调试并运行该程序。
❖ 使用Debug运行汇编程序较之使用ASM和MASM运行有 以下优点。 (1) 可在最底层环境下运行,免去使用ASM和MASM所必 须熟悉的文本编辑程序、ASM和MASM汇编程序,以及 LINK程序的麻烦,因而调试周期短。 (2) 程序员可在不熟悉ASM和MASM所涉及的伪指令的情 况下运行汇编语言程序,为以后将学习重点转移到程序设 计打下坚实的语言程序
(3)熟悉Debug命令的使用,可以为以后的软件开发掌握一种 最容易找到的调试工具。这是因为Debug除了可运行汇编 语言程序外,还可以直接用来检查和修改内存单元、装入、 存储及启动可执行程序,检查及修改寄存器。也就是说 Debug命令可以深入到计算机的基本级,可使用户通过这 些命令了解计算机底层的工作状态。这就为学习、了解和 掌握计算机内部的工作原理提供了一条新的学习途径。
2.1.2 用Edit编辑汇编源程序
1
进入Edit的DOS环境窗口
2
用Edit编辑汇编语言程序
1. 进入Edit的DOS环境窗口
❖ Windows下,选择【开始】|【运行】命令,弹出【运行】 对话框,如图2-1所示,在【打开】下拉列表框中输入 edit,单击【确定】按钮,进入DOS环境下的Edit窗口, 如图2-2所示。
❖ 汇编语言源程序文件.asm生成后,需要经过汇编生成.obj 中间文件,然后连接.obj才能够最终生成.exe可执行文件。 然而目前市面上却没有一种集成以上所有功能的汇编语言 开发工具。本章的目的就是介绍用编辑工具如何编辑 汇编语言源程序文件,以及用一些调试工具软件调试汇 编程序等内容。
❖ 例2-1 用Edit编辑汇编程序Ex2-1.asm。该程序执行结果 是在显示器上输出一个字符3,源程序如下: CODE SEGMENT ASSUME CS:CODE MOV AH,2 MOV DL,'A' INT 21H MOV AH,4CH INT 21H CODE ENDS END
图2-1 Windows运行对话框
图2-2 Edit窗口
2. 用Edit编辑汇编语言程序
❖ Edit编辑是一个DOS环境的编辑软件,因此主要用键盘操 作。Edit窗口全屏幕显示的切换方式是按Alt+Enter组合 键,一旦切换到全屏幕方式,其显示如同在DOS环境下的 状态,必要时可以再次按Alt+Enter组合键返回到窗口方 式。
2. 用Edit编辑汇编语言程序 ❖ 本例源程序文件编辑过程如下。
(1) 进入Edit,按Alt+F组合键后在弹出的File菜单中选择 的New命令,编辑新文件。在Edit编辑窗口输入Ex21.asm的内容,如图2-4所示。
图2-4 编辑一个汇编源程序
2. 用Edit编辑汇编语言程序 (2) 再次按Alt+F组合键,在弹出的File菜单中按Alt+S组合
2.1 DOS下Edit的使用
2.1.1 汇编源程序文件的编辑及相关知识 2.1.2 用Edit编辑汇编源程序
2.1.1 汇编源程序文件的编辑及相关知识
❖ 汇编语言源程序是一个文本文件,其默认扩展名为.asm, 在将其汇编(也称为翻译)成机器语言之前,必须首先生成 该文件。与任何计算机语言一样,生成一个汇编语言源程 序分两步完成。首先需要将求解的问题,根据汇编语言规 范,用相应的汇编语句来实现,这个过程称作汇编语言程 序设计。然后用工具软件将设计好的程序输入到计算机形 成汇编语言源程序文件。
-------朱耀庭
---------朱耀庭
1
第二章 80x86实模式汇编的运行环境
2.1 DOS下Edit的使用 2.2 Debug调试汇编程序 2.3 EMU8086的使用 2.4 用MASM(或ASM)运行汇编语言程序
2.5 Windows下虚拟DOS运行环境的搭建
键或选择Save as命令,在弹出的Save as对话框中输入 要保存的文件路径和文件名,这里是D:\masm\Ex21.asm,然后单击OK按钮保存所编辑的汇编源程序,如 图2-5所示。
图2-5 保存源程序
2.2 Debug调试汇编程序
2.2.1 用Debug运行汇编语言程序 2.2.2 典型Debug命令剖析 2.2.3 Debug命令综述
❖ Edit窗口的上方是命令菜单选 项:File、Edit、Search、 View、Options和Help。通过 组合键Alt+菜单项的首字母,
可以打开相应的菜单选项。例
如,按Alt+F组合键弹出File菜 单,如图2-3所示。
图2-3 命令菜单窗口
2. 用Edit编辑汇编语言程序
❖ 程序设计的过程又分成几步:提取要处理问题的数学模型, 寻找合适的算法,在已知算法的基础上遵循汇编语言规范, 构思程序流程,必要时画出流程图(也称作框图), 最后按照流程图用汇编语句逐一实现流程图中的每一步, 形成源程序。
2.1.1 汇编源程序文件的编辑及相关知识
❖ 由源程序形成源程序文件的过程,就是利用文本编辑工具 将源程序编辑成源程序文件的过程。既然汇编语言源程序 文件是无格式文本文件,因此可以用任何文本编辑工具编 辑,包括Windows下的“记事本”、“写字板”,乃至 “Word”都可以承担。如果使用“Word”一定要保存为无 格式的纯文本文件,而不是.doc或其他文件格式。
2.2.1 用Debug运行汇编语言程序
❖ Debug调试程序是以DOS外部命令程序的形式提供的,它 的文件名是。在进入Debug的提示符“-”之 后,用户可以通过Debug的命令输入汇编源程序,并用相 应命令将其汇编成机器语言程序,然后调试并运行该程序。
❖ 使用Debug运行汇编程序较之使用ASM和MASM运行有 以下优点。 (1) 可在最底层环境下运行,免去使用ASM和MASM所必 须熟悉的文本编辑程序、ASM和MASM汇编程序,以及 LINK程序的麻烦,因而调试周期短。 (2) 程序员可在不熟悉ASM和MASM所涉及的伪指令的情 况下运行汇编语言程序,为以后将学习重点转移到程序设 计打下坚实的语言程序
(3)熟悉Debug命令的使用,可以为以后的软件开发掌握一种 最容易找到的调试工具。这是因为Debug除了可运行汇编 语言程序外,还可以直接用来检查和修改内存单元、装入、 存储及启动可执行程序,检查及修改寄存器。也就是说 Debug命令可以深入到计算机的基本级,可使用户通过这 些命令了解计算机底层的工作状态。这就为学习、了解和 掌握计算机内部的工作原理提供了一条新的学习途径。
2.1.2 用Edit编辑汇编源程序
1
进入Edit的DOS环境窗口
2
用Edit编辑汇编语言程序
1. 进入Edit的DOS环境窗口
❖ Windows下,选择【开始】|【运行】命令,弹出【运行】 对话框,如图2-1所示,在【打开】下拉列表框中输入 edit,单击【确定】按钮,进入DOS环境下的Edit窗口, 如图2-2所示。
❖ 汇编语言源程序文件.asm生成后,需要经过汇编生成.obj 中间文件,然后连接.obj才能够最终生成.exe可执行文件。 然而目前市面上却没有一种集成以上所有功能的汇编语言 开发工具。本章的目的就是介绍用编辑工具如何编辑 汇编语言源程序文件,以及用一些调试工具软件调试汇 编程序等内容。
❖ 例2-1 用Edit编辑汇编程序Ex2-1.asm。该程序执行结果 是在显示器上输出一个字符3,源程序如下: CODE SEGMENT ASSUME CS:CODE MOV AH,2 MOV DL,'A' INT 21H MOV AH,4CH INT 21H CODE ENDS END
图2-1 Windows运行对话框
图2-2 Edit窗口
2. 用Edit编辑汇编语言程序
❖ Edit编辑是一个DOS环境的编辑软件,因此主要用键盘操 作。Edit窗口全屏幕显示的切换方式是按Alt+Enter组合 键,一旦切换到全屏幕方式,其显示如同在DOS环境下的 状态,必要时可以再次按Alt+Enter组合键返回到窗口方 式。
2. 用Edit编辑汇编语言程序 ❖ 本例源程序文件编辑过程如下。
(1) 进入Edit,按Alt+F组合键后在弹出的File菜单中选择 的New命令,编辑新文件。在Edit编辑窗口输入Ex21.asm的内容,如图2-4所示。
图2-4 编辑一个汇编源程序
2. 用Edit编辑汇编语言程序 (2) 再次按Alt+F组合键,在弹出的File菜单中按Alt+S组合
2.1 DOS下Edit的使用
2.1.1 汇编源程序文件的编辑及相关知识 2.1.2 用Edit编辑汇编源程序
2.1.1 汇编源程序文件的编辑及相关知识
❖ 汇编语言源程序是一个文本文件,其默认扩展名为.asm, 在将其汇编(也称为翻译)成机器语言之前,必须首先生成 该文件。与任何计算机语言一样,生成一个汇编语言源程 序分两步完成。首先需要将求解的问题,根据汇编语言规 范,用相应的汇编语句来实现,这个过程称作汇编语言程 序设计。然后用工具软件将设计好的程序输入到计算机形 成汇编语言源程序文件。