汇编语言程序设计.

Slides:



Advertisements
Similar presentations
数制 (1) 基数:在一种数制中,只能使用一组固定的数字符号 来表示数目的大小,其使用数字符号的个数,就称为该数 制的基数。其规则是 “ 逢 b 进一 ” ,则称为 b 进制的基数。 十进制( Decimal )的基数是 10 ,,它有 10 个数字符号, 即 0 , 1 , 2 , 3 , 4 ,
Advertisements

三级偏软考点. 第一章必考点 1. 计算机的进位数制 (1) 计算机中所有数据是二进制 0,1 表示 (2) 在现实生活中人们普遍使用十进制 如何把十进制转换成计算机所识别的二 进制?整数是除 2 取余法,小数是乘 2 取 整法.
数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
会计从业资格 初级会计电算化. 考试题型: 本章内容在考试中以单选题、多选题、判断题 形式出现; 重点理解计算机软件的概念,掌握计算机软件 的构成,了解常用软件的内容。 计算机软件.
联系方式 课程学习平台网址: 用户名:学号 ; 密码:身份证后 6 位.
单片机原理及应用 主讲:张学军 光电工程学院 TEL:
Assembly Language Programming 湛江师范学院 汇编语言程序设计实验课件 主讲教师:王 晓 晔.
第一章 计算机基础知识 计算机的发展简史 1 计算机软件系统 6 计算机的定义和分类 2 微型计算机的组成 7 计算机的特点和用途 3
微型计算机中数的编码和字符的表示 1 数的表示与转换方法 2 带符号数的表示方法 3 定点数与浮点数 4 计算机中的编码.
第1章 计算机基础知识 1.4 二进制数的运算及其加法电路 1.4.1二进制数据算术运算规则 (1) 加法运算规则
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
微机原理与接口技术 大家好!.
第10章 DOS功能调用与BIOS中断调用.
第四章 汇编语言 程序设计 任课教师:王晓甜
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Oracle数据库 Oracle 子程序.
计算机基础知识 丁家营镇九年制学校 徐中先.
《数据库原理及应用》课程介绍 信息工程学院 孙俊国
本周实验安排 实验内容:(P231)人名排序的例子。
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年10月30日.
4.1 汇编语言 4.2 顺序结构程序 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
IBM—PC汇编语言 程序设计(第二版) 主讲 李敬兆 Ch1 基础知识.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
清华大学计算机系列教材 IBM—PC汇编语言 程序设计(第二版).
汇编语言程序设计 Assembly Language Programming
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月05日.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月20日.
汇编语言程序设计课程设计 第二次实验 DEBUG基本命令与算术运算指令
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
第六章 子程序结构 §6.1 子程序的设计方法 §6.2 嵌套与递归子程序 §6.3 子程序举例 §6.4 DOS系统功能调用.
逆向工程-汇编语言
CPU结构和功能.
第5章 循环与分支程序设计 学习目标: 了解并掌握循环程序的构造方法,尤其是对循环控制条件的设置以及可能出现的边界情况的考虑。掌握起泡排序算法这种多重循环程序设计中的常用方法。交换标志位的设置在此算法中更能提高效率。学会在数组排序算法中采用折半查找法来提高查找效率。学会使用跳跃表法实现CASE结构。
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
4.1 汇编语言程序格式 4.2 MASM中的表达式 4.3 伪指令语句 4.4 DOS系统功能调用和BIOS中断调用
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程.
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
第1章 数制与编码.
第9章 位 运 算.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
<编程达人入门课程> 本节内容 计算机编程语言 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月06日.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二节 C语言的特点.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
第十二章 位运算.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
数据表示 第 2 讲.
第6章 子程序结构 在程序设计中,我们会发现一些多次无规律重复的程序段或语句序列。解决此类问题一个行之有效的方法就是将它们设计成可供反复调用的独立的子程序结构,以便在需要时调用。在汇编语言中,子程序又称过程。 调用子程序的程序称为主调程序或主程序。 2019/7/20 ch6.
微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.
大数据搜索挖掘实验室 第五章 子程序设计 张华平 副教授 博士 Website: 大数据搜索挖掘实验室
第一章 微型计算机中的数据类型.
微机原理与接口技术 西安邮电大学计算机学院 董 梁.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
学习数据结构的意义 (C语言版) 《数据结构》在线开放课程 主讲人:李刚
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程
第9章 位 运 算.
Presentation transcript:

汇编语言程序设计

主讲:王建荣 助教: 罗成 Tel:27402104 E_mail: wjr@tju.edu.cn Ftp://202.113.12.9/wjr/汇编语言/2005 助教: 罗成 E_mail: luocheng19820101@hotmail.com

教材:

课程介绍 专业基础课、必修课 计算机组成原理的一个部分 软件开发的一个组成部分 一种低级语言的程序设计 高级语言程序设计的扩展

相关课程 先修课 高级语言程序设计 计算机组成原理 后续课 微机接口技术 计算机控制技术

计算机语言发展简史 机器语言 汇编语言 高级语言 FORTRAN BASIC COBOL PASCAL C/C++ JAVA …...

汇编语言 汇编语言是一种面向机器的低级程序设计语言 汇编语言以助记符形式表示每一条计算机指令 用助记符表示的指令就是汇编语言中的汇编格式指令 助记符(mnemonic)是便于人们记忆、并能描述指令功能和指令操作数的符号 助记符一般就是表明指令功能的英语单词或其缩写 用助记符表示的指令就是汇编语言中的汇编格式指令 汇编格式指令以及使用它们编写程序的规则就形成汇编语言(Assembly Language) 汇编语言源程序以 .ASM为默认的扩展名

汇编程序(Assembler) 80x86CPU的汇编程序主要有微软的宏汇编程序MASM。较著名的还有Borland公司的TASM,无实质差别 本课程采用Borland的TASM5.0

汇编语言的特点 汇编语言程序与处理器指令系统密切相关 程序员可直接、有效地控制系统硬件资源 形成的可执行文件运行速度快、占用主存容量少

汇编语言可操作的系统硬件资源 中央处理单元 存储器(主存储器) 外部设备(接口电路)

汇编语言和高级语言(1) 汇编语言与处理器密切相关 高级语言与具体计算机无关 ↘ 汇编语言程序的通用性、可移植性较差 ↗ 高级语言程序可以在多种计算机上编译后执行

汇编语言和高级语言(2) 汇编语言功能有限、涉及硬件细节 高级语言提供了强大的功能,不必关心琐碎问题 ↘ 编写程序比较繁琐,调试起来也比较困难 高级语言提供了强大的功能,不必关心琐碎问题 ↗类似自然语言的语法,易于掌握和应用

汇编语言和高级语言(3) 汇编语言本质上就是机器语言 高级语言不针对具体计算机系统 ↗ 可以直接、有效地控制计算机硬件 ↗ 易于产生速度快、容量小的高效率目标程序 高级语言不针对具体计算机系统 ↘ 不易直接控制计算机的各种操作 ↘ 目标程序比较庞大、运行速度较慢

汇编语言和高级语言(4) 汇编语言的优点: 汇编语言的缺点: 直接控制计算机硬件部件 可以编写在“时间”和“空间”两方面最有效的程序 与处理器密切有关 需要熟悉计算机硬件系统、考虑许多细节 编写繁琐,调试、维护、交流和移植困难

汇编语言和高级语言(5) 汇编语言的优点使得它在程序设计中占有重要的位置,是不可被取代的 汇编语言的缺点使得人们主要采用高级语言进行程序开发工作 有时需要采用高级语言和汇编语言混合编程的方法,互相取长补短,更好地解决实际问题

汇编语言的应用场合 程序要具有较快的执行时间,或者只能占用较小的存储容量 程序与计算机硬件密切相关,程序要直接、有效地控制硬件 大型软件需要提高性能、优化处理的部分 没有合适的高级语言、或只能采用汇编语言的时候 分析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等 70%以上的系统软件是用汇编语言编写的。

一个简单的汇编语言源程序举例 分别用C语言和汇编语言编制一程序,实现如下功能: 给定两个整数(<128),将其进行加法运算并在屏幕上显示加法运算结果。

一个简单的汇编语言源程序举例 #include "stdafx.h" #include "stdio.h" int main() { int a,b,c; a=1; b=2; c=a+b; printf( "c=%d\n",c ); return 0; } 编译后的目标文件达到3.59KB

一个简单的汇编语言源程序举例 汇编后的目标文件只有208字节 mov a,1 mov b,2 mov al,a add al,b mov c,al lea dx,string mov ah,09 int 21h add c,30h mov dl,c mov ah,2 mov dl,0ah mov dl,0dh ret main endp code ends end start data segment a db ? b db ? c db ? string db 'c=$' data ends code segment main proc far assume cs:code, ds:data, es:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax 汇编后的目标文件只有208字节

学习汇编语言,你需要 胆量:不要害怕去接触那些计算机的内部工作机制。 知识:了解计算机常用的数制,特别是二进制、十六进制、八进制,以及计算机保存数据的方法。 开放:接受汇编语言与高级语言的差异,而不是去指责它如何的不好读。 经验:要求你拥有任意其他编程语言的一点点编程经验。 头脑。

为什么学习汇编 如果你仅仅只是想混口饭吃,找个工作,可能教你成为MFC的高手之类的书对你就足够了。 但是,如果你想做一个很好的软件,不仅能满足你谋一碗饭吃,还能使你扬名,最后你的软件还能成为很多人用,甚至你还想把它作为一个事业去经营,从最低层开始做起,从最基本做起。 ——梁肇新《编程高手箴言》

第1章 基础知识 数制 数制之间的转换 运算 数和字符的表示

进位记数制 二进制 B(Binary) 八进制 O(Octal) 十进制 D(Decimal) 十六进制 H(Hexadecial)

数制之间的转换 二进制数和十进制之间的转换 十六进制数和二进制之间的转换 二进制和十六进制数之间的转换

运算 算术运算 逻辑运算

运算-逻辑运算 与、或、非、异或 与(AND)

运算-逻辑运算 与、或、非、异或 或(OR)

运算-逻辑运算 与、或、非、异或 非(NOT)

运算-逻辑运算 与、或、非、异或 异或(XOR)

运算-逻辑运算 例:X=00FFH,Y=5555H,Z1=X∧Y,Z2=X∨Y,Z3= ,Z4= ,求Z1、Z2、Z3、Z4的值。      解:X = 0000 0000 1111 1111        Y = 0101 0101 0101 0101         Z1= 0000 0000 0101 0101 = 0055H        Z2= 0101 0101 1111 1111 = 55FFH        Z3= 1111 1111 0000 0000 = FF00H        Z4= 0101 0101 1010 1010 = 55AAH

计算机中数和字符的表示 计算机中数的表示 原码:符号+绝对值 反码:正数的反码与原码相同,负数的数值位与原码相反 补码:正数的补码与原码相同,负数的补码用2n-|x|来表示

计算机中数的表示 补码 (1)写出与该负数相对应的正数的补码 (2)按位求反 (3)末位加一 补码的表数范围

补码的加法和减法 补码的加法规则是: [X+Y]补=[X]补+[Y]补 补码的减法规则是: [X-Y]补=[X]补+[-Y]补 无符号整数

BCD码及其表示 用4位二进制数表示1位十进制数 常用的BCD码存储格式 组合(压缩)型BCD码(1Byte表示2个BCD码) 7 6 5 4 3 2 1 0 BCD 个 位 十 位 非组合(非压缩)型BCD码(1Byte表示1个BCD码) 7 6 5 4 3 2 1 0 BCD 无意义

字符的编码 采用7位编码的ASCII码,用1Byte表示 非打印字符33个(用于控制) 27=128 打印字符95个 BEL(07H) 响铃 DEL(7FH) 删除 CR (0DH) 回车 LF (0AH) 换行