汇编语言第一章基础知识

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(2)解释型计算机语言
解释型计算机语言执行时需要翻译程序在场,边解释边执行。 如Basic语言、许多脚本语言(Perl、Java Script语言等)是解 释型语言。
10
汇编语言主要特性
面向机器的低级语言,通常是为特定的计算机或计算机系列专 门设计的; 保持了机器语言的优点,具有直接和简捷的特点;
由运算器、控制器、存储器、输入设备和输出设备五大部分 组成; 数据和程序以二进制代码的形式不加区别地存放在存储器中 ,存放位置由地址指定,地址码也是二进制形式;
控制器根据存放在存储器中的指令序列(即程序)工作,并 由一个程序计数器(PC)控制指令的执行。控制器具有判断 能力,能够根据计算结果选择不同的动作流程
学习建议: 充分注意“汇编”课实践性强的特点,多读程序,多写程序, 多上机调试程序; 注意软、硬件结合,熟悉PC机的编程结构; 掌握汇编语言及其程序设计的基本概念、方法和技巧。
2
简介
参考资料:
1.80X86汇编语言程序设计
沈美明 温冬婵 清华大学出版社
2.IBM PC 汇编语言与程序设计
PETER ABEL 编著 第5版 人民邮电出版社 3. IBM PC 汇编语言与程序设计例题习题集 温冬婵 沈美明 清华大学出版社
MOV
INT INT
AH,2
21H 20H
; B402H
;CD21H ;CD20H
图1.1 汇编语言指令到机器指令的示意图
9
非面向机器的计算机语言
非面向计算机的语言按照翻译程序的类型分为编译型语言和解释 型语言;
(1)编译型计算机语言
翻译成机器语言的过程远比汇编的过程复杂,通常经过预处 理和多次扫描才能够变成机器语言,这个过程称作编译。编译后 的浮动二进制文件要经过连接,才能够生成可执行文件。可执行 文件运行时,不需要编译程序在场。 例如各种C语言都是编译型语言。
28
8086微处理器
8086 CPU的结构是一次划时代的革命,其基础的逻辑结构 一直沿用至今,即使最新型的酷睿多核CPU,使用的也还是地 址、数据及控制三总线的协同工作方法。 无论何种CPU,在工作时都是围绕一个核心,即对某个指定 的“地址”进行操作,或者取数或者运算。这个地址可以是某 个通用寄存器、内存的某个地址、甚至是某个外设端口。
汇编语言主要特性
程序占用字节数统计 程序设计语言 可执行程序占用字节数 csum.exe 4330 高级语言(C) 17 汇编语言(MASM) asmsum.com machine.com 17 机器语言 汇编语言的特点: 占用空间少;
执行速度快;10倍?
直接控制硬件能力强; 开发周期长、可移植性差、不易掌握;
26
1.2.4 系统总线
在计算机系统中,各个部件之间传送信息的公共通路叫总线。
地址总线AB
I/O总线 存储器 CPU I/O接口 控制 数据总线DB 控制总线CB I/O设备
27
1.2.5 8086微处理器结构
总线接口部件(bus interface unit, BIU) 负责与存储器、I/O 端口传送数据。 执行部件 (execution unit, EU) 负责指令的执行。
7
1.1 计算机语言
(2)汇编语言 用助记符、符号地址等表示的机器指令称作汇编指令,用汇 编指令编写的程序称作汇编指令程序。 汇编语言是汇编指令集、伪指令集及其使用规则的统称。 汇编语言程序要比用机器指令编写的程序容易理解和维护。
汇编语言源程序是一个文本文件,80x86汇编语言源程序扩展 名是 .asm ,它必须经过翻译才能够变成可执行的机器语言程序, 这个翻译过程称作汇编。
8
面向机器的语言
汇编
用汇编语言编写的程序大大提高了程序的可读性,但失去了 CPU能直接识别的特性。 把汇编语言源程序翻译成 CPU能识别的机器指令序列,我们称 该翻译程序为汇编程序。图1.1是翻译程序的翻译过程示意图。 常用的汇编程序有:MASM、TASM和DEBUG等。
MOV DL,33H ; B233H
12
汇编语言主要特性
--汇编语言实现 CODE SEGMENT ORG 100H ASSUME CS:CODE,DS:CODE MAIN PROG NEAR MOV AX,A ADD AX,B MOV SUM,AX RET 汇编语句与机器语句一一对应,它是 A DW 123 把每条指令及数据用便于记忆的符号 B DW 456 书写,是一种符号化了的机器语言, SUM DW ? 即用指令助记符、符号地址、标号等 MAIN ENDP 符号书写程序的语言 CODE ENDS END MAIN 13
3
课程内容
第1章 基础知识(3学时) 第2章 指令与寻址方式(6学时) 第3章 汇编语言程序组织(6学时) 第4章 程序结构及程序设计(9学时) 第5章 高级汇编技术(3学时)
4
第1章 基础知识
1.1 计算机语言 1.2 计算机组织结构 1.3 计算机中数的表示
5
第1章 基础知识
1.1 计算机语言
19
寄存器-Register
寄存器是有限存贮容量的高速存贮部件; 寄存器是内存阶层中的最顶端,也是系统获得操作资料的 最快速途径; 通常由触发器组成; 宽度:8位,16位,32位,个别可按位访问; 注意与存储器的区别;
20
1.2.2 存储器-Memory
存储器是计算机中用于保存信息的记忆设备; 计算机存储信息的基本单位是一个二进制位(bit):1或0,每8位 组成一个字节; 通常所说字长为16位,由2个字节组成; 在存储器里以字节为单位存储信息,为了正确存取信息,每一个 字节单元给以一个存储器地址。 地址从0开始编号,顺序每次加1,地址也是以二进制数表示的;
计算机语言的层次
机器语言
汇编语言
高级语言
FORTRAN BASIC COBOL PASCAL C/C++
6
JAVA...
1.1 计算机语言
面向机器的语言
(1)机器语言 机器语言程序由机器指令构成,这些机器指令按照执行顺序 依次排列,运行时依次执行,完成某个特定的计算或任务; 机器指令是CPU能直接识别并执行的指令,它的表现形式是 二进制编码。机器指令通常由操作码和操作数两部分组成。 机器指令与CPU紧密相关,所以不同种类的CPU所对应的机 器指令也就不同。如80X86、Z80计算机或者各类DSP使用不同 的机器语言。
可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、 CPU、I/O端口等
目标代码简短,占用内存少,执行速度快,是高效的程序设计 语言。 经常与高级语言配合使用,应用十分广泛。
11
汇编语言主要特性
举例:编程实现123+456,结果保存到变量sum中。 //C语言实现 Main() { int a,b,sum; a=123; b=456; sum=a+b; } --机器语言实现 输入程序代码: -E CS:100 A1 0B 01 03 06 0D 01 A3 0F 01 C3 设置数据: -E DS 010B 7B 00 C8 01 00 00 运行结果: 12F8:010F 43 02
控制器 输入设备 运算器
存储器
17
输出设备
微型计算机的工作过程
微型计算机的工作过程就是执行程序的过程,而程序由指令 序列组成,因此,执行程序的过程,就是执行指令序列的过程 ,即逐条地从存储器中取出指令并完成指令所指定的操作。 由于执行每一条指令,都包括取指、译码和执行三个基本步 骤,所以,微型计算机的工作过程,也就是不断地取指令、译 码和执行的过程,直到遇到停机指令时才结束机器的运行。
21
存储器编址
存储单元的内容 存储单元中所存放的二进制信息称为该存储单元的内容或 值,并且规定: 一个字节的内容是该字节单元内存放的二进制信息; 一个字的内容是该字地址所指向的单元及其后继一个单 元的内容拼接而成; 一个双字的内容是该字地址所指向的单元及其后三个单 元的内容拼接而成。 在拼接“字内容”时,按“高高低低”的原则来处理,即: 高存储单元(地址大的存储单元)的值是“字内容”的高8位, 低存储单元(地址小的存储单元)的值是“字内容”的低8位。 在拼接“双字内容”时也是如此。
取指令,P C 值加1
Y
停机 ?
N
译码并执行
结束
优点:处理器简单通用,把 复杂问题转移到存放解释程 序存储器中,即把复杂的硬 件设计转化为复杂的软件设 计。
18
1.2.1 中央处理器
主要由算术逻辑部件(ALU)、累加器、通用寄存器组、 控制逻辑部件、内部总线等组成。主要用途是产生时序控制 信号、指令译码 、执行算术运算和逻辑运算等。 算术逻辑部件(ALU): 完成算术运算(+、-、×、÷)等操作; 完成逻辑运算(与、或、非、异)等操作; 通用寄存器组: 数据寄存器:AX、BX、CX、DX 指针及变址寄存器:SP、BP、SI、DI、IP 标志寄存器:FLAG 段寄存器:CS、DS、SS、ES
23
8086内存分段管理模式
24
存储器分段管理模式
(2)物理地址的形成方式 存储单元的逻辑地址分为两部分:段地址和偏移量。由逻辑地 址得到其物理地址(PA—Physical Address)的计算方法如下: 物理地址PA=段地址×16 + 偏移量 存储器分段管理的优点: 允许程序在存储器内重定位; 允许实模式程序在保护模式下运行; 有利于程序和数据的分离。
14
汇编语言应用
70% 以上的系统软件是用汇编语言编写的,常驻内存程序和中 断服务例行程序几乎都用汇编语言编写; 在管理硬件设备方面提供了更多的控制方法,可用于快速处理、 位处理、编写I/O驱动程序; 生成更加紧凑的可执行模块,减小存储空间的需求,程序执行 效率更高、速度更快; 有助于理解程序与操作系统、处理器、存储器、外部设备之间 的关系和工作原理; 编写、调试程序的复杂性高; 应用软件大部分是用高级语言编写,但对于执行效率要求苛刻 的部分还需要用汇编语言进行优化改进;
15
1.2 计算机组织结构
计算机系统组成:硬件+软件 硬件组成:中央处理器(CPU),存储器,输入输出子系统和 系统总线
Leabharlann Baidu
硬件:
存储器
中央处理器 CPU 总线控制 逻辑 大容量 接 口 存储器
系 统 总 线
. . .
接 口
. . .
I/O设备 I/O子系统
软件:系统软件
用户软件 16
冯· 诺依曼结构
汇编语言程序设计
马永锋 mayongfeng@bit.edu.cn 信息实验楼三层319-2 北京理工大学 电子工程系
简介
主要内容: 学习关于计算机语言和CPU硬件方面的基础知识; 学习汇编语言的特性、基础知识及其编程技术; 建立起“机器/程序”、“空间/地址” 的概念;
为下学期《计算机原理与应用》课程打好基础。
25
1.2.3 输入输出接口
在计算机系统中,主机( CPU 和存储器)与外部设备(鼠标、 键盘、显示器、硬盘等)的通信是通过输入、输出接口 (Interface)进行的,每个接口包括一组寄存器。 数据寄存器:存放外设和主机间传送的数据; 状态寄存器:保存外设或接口的状态信息; 命令寄存器:保存CPU发给外设或接口的控制命令 外设中每个寄存器有一个端口(Port)地址,构成 一个独立于内存的 I / O 地址空间:0000H ~ FFFFH
22
存储器分段管理模式
(1)存储器的分段 计算机的内存单元是以“字节”为最小单位进行线性编址的。 为了标识每个存储单元,就给每个存储单元规定一个编号,此编 号就是该存储单元的物理地址。 16位微机把内存空间划分成若干个逻辑段,每个逻辑段的要求 如下: 逻辑段的起始地址(通常简称为:段地址)必须是16的倍数, 即最低4位二进制必须全为0; 逻辑段的最大容量为64K,这由16位寄存器的寻址空间所决 定。 按上述规定,1M内存最多可分成64K个段,即65536个段(段之 间相互重叠),至少可分成16个相互不重叠的段。
29
8086微处理器
“需要执行的机器指令程序,首先必须存放在内存的某个地 方”。理解这一点是汇编语言程序设计的基本要求,用高级语 言编写并编译程序时并不需要知道这一点,这是机器语言与高 级语言的差异。
存放程序的这个地方,在程序执行时由总线接口单元的CS及 IP共同来指向。指令通过外部总线从内存中被取出后,会送到 BIU的指令流队列,并由EU执行。而这一切都是由控制电路来 协调完成的。
相关文档
最新文档