Presentation is loading. Please wait.

Presentation is loading. Please wait.

清华大学计算机系列教材 IBM—PC汇编语言 程序设计(第二版).

Similar presentations


Presentation on theme: "清华大学计算机系列教材 IBM—PC汇编语言 程序设计(第二版)."— Presentation transcript:

1 清华大学计算机系列教材 IBM—PC汇编语言 程序设计(第二版)

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

3 汇编语言的特点 面向机器的低级语言,通常是为特定的计算 机或计算机系列专门设计的。 保持了机器语言的优点,具有直接和简捷 的特点。 可有效地访问、控制计算机的各种硬件设备, 如磁盘、存储器、CPU、I/O端口等。 目标代码简短,占用内存少,执行速度快, 是高效的程序设计语言。  经常与高级语言配合使用,应用十分广泛。

4 int main(int argc, char* argv[]) { int a,b,c; a=1; b=2; c=a+b;
#include "stdafx.h" #include "stdio.h" int main(int argc, char* argv[]) { int a,b,c; a=1; b=2; c=a+b; printf(“c=%d\n",c); return 0; } 例1 编译后的目标文件达到3.59KB

5 例 2. C = a + b data segment data ends code segment 汇编后的目标文件只有208字节
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 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 int 21h ret main endp code ends end start 汇编后的目标文件只有208字节

6 系统程序、效率代码、I/O驱动程序 汇编语言的应用 某些快速处理、位处理、访问硬件设备等 高效程序是用汇编语言编写的。
70%以上的系统软件是用汇编语言编写的。 某些快速处理、位处理、访问硬件设备等 高效程序是用汇编语言编写的。 高级绘图程序、视频游戏程序一般是用汇 编语言编写的。

7 教师建议 目标: ●了解汇编语言的特性及其编程技术, ●建立起“机器”和“程序”、“空间”和 “时间”的概念。 建议: ●充分注意“汇编”课实践性强的特点, ●多读程序,多写程序,多上机调试程序, ●熟悉PC机的编程结构, ●掌握汇编语言及其程序设计的基本概 念、方法和技巧。

8 参考资料 1.80X86汇编语言程序设计 沈美明 温冬婵 清华大学出版社 2.IBM PC 汇编语言与程序设计 PETER ABEL 编著
沈美明 温冬婵 清华大学出版社 2.IBM PC 汇编语言与程序设计 PETER ABEL 编著 第4版 清华大学出版社.PRENTICE HALL 第5版 人民邮电出版社 3. IBM PC 汇编语言与程序设计例题习题集 温冬婵 沈美明 清华大学出版社

9 教学日历: 第一周 绪论 数制 数制之间的转换 数和字符的表示 运算 第二周 计算机组织 CPU 存储器 外部设备 寻址方式
第一周 绪论 数制 数制之间的转换 数和字符的表示 运算 第二周 计算机组织 CPU 存储器 外部设备 寻址方式 第三周 指令系统(1) 第四周 指令系统(2) BIOS和DOS调用 第五周 上机过程 完整段定义和简化段定义格式 伪操作 第六周 循环与分支程序设计 子程序结构 第七周 高级汇编语言技术 I/O程序设计 第八周 中断程序设计 复习

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

11 8个二进制位:Byte (字节) 1Byte = 8bit 2个字节: Word (字) 1Word = 2Byte = 16bit
预 备 知 识 存储容量 1K = = (Kilo) 1M = 1024K = (Mega) 1G = 1024M = (Giga) 1个二进制位:bit (比特) 8个二进制位:Byte (字节) 1Byte = 8bit 2个字节: Word (字) 1Word = 2Byte = 16bit

12 1. 数 制 数 制 基 数 数 码 二进制 Binary , 1 八进制 Octal , 1, 2, 3, 4, 5, 6, 7 十进制 Decimal , 1, 2, 3, 4, 5, 6, 7, 8, 9 十六进制 Hexadecimal , 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 二进制: 基数为2,逢二进一 = 1× × ×2 0 = 1310 十六进制:基数为16,逢十六进一 1001, 0001, 1000, 0111 = 9 × × × ×16 0

13 2. 数制之间的转换 二进制 十六进制 十进制 二进制 十进制 十六进制 降幂法 除法

14  二进制 十六进制     B F ∴ 0011,0101,1011,1111B = 35BFH A C ∴ A19CH = 1010,0001,1001,1100B

15  二进制 十进制 1011B = 23+21+20=11D 降幂法 除法 例: 27D = ? B 27 11 3 3 1
 二进制 十进制 1011B = =11D 降幂法 除法 例: 27D = ? B -    2n ∴ 27D = 11011B

16  十六进制 十进制 BF3CH = 11163 +15162 +3161 +12160 = 48956D 降幂法 除法
 十六进制 十进制 BF3CH = 11 162 +3 160 = 48956D 降幂法 除法 例:399D = ? H /16→24/16→1/16→ 0 -   ↓ ↓ ↓ 16n F    F ∴ 399D = 18FH

17  算术运算 二进制数:逢二进一 借一为二 3. 运算(算术运算和逻辑运算) 加法规则 乘法规则 0 + 0 = 0 0  0 = 0
3. 运算(算术运算和逻辑运算)  算术运算 二进制数:逢二进一 借一为二 加法规则 乘法规则 0 + 0 =  0 = 0 0 + 1 =  1 = 0 1 + 0 =  0 = 0 1 + 1 = 0 (进位1)  1 = 1

18 十六进制数:逢十六进一 借一为十六 0 5 C 3 H 3 D 2 5 H 4 2 E 8 H 3 D 2 5 H 0 5 C 3 H
十六进制数:逢十六进一 借一为十六 -1 0 5 C 3 H 3 D 2 5 H 4 2 E 8 H 3 D 2 5 H 0 5 C 3 H H 1

19  逻辑运算(按位操作) “与”运算(AND) “或”运算(OR) A B AB A B AB 0 0 0 0 0 0
 逻辑运算(按位操作) “与”运算(AND) “或”运算(OR) A B AB A B AB “非”运算(NOT) “异或”运算(XOR) A A A B AB

20 例:X=00FFH Y=5555H,求Z=XY= ? X= B  Y= B Z= B  Z=55AAH

21 4. 数和字符的表示  计算机中正负数的表示 假设机器字长为8位: 符号位 数值位 假设机器字长为16位: 符号位 = 0 正数 数值位
H.O.Nibble L.O.Nibble 符号位 数值位 假设机器字长为16位: H.O.Byte L.O.Byte 符号位 = 0 正数 数值位 = 1 负数

22 数的常用表示法 —— 原码 反码 补码 原码表示法:符号 + 绝对值 反码表示法:正数的反码同原码,负数的反码数值位与原码相反
数的常用表示法 —— 原码 反码 补码 原码表示法:符号 + 绝对值 例:n = 8bit [+3]原码 = ,0011 = 03H [- 3]原码 = ,0011 = 83H [+0]原码 = ,0000 = 00H [- 0]原码 = ,0000 = 80H  0 的表示不惟一 反码表示法:正数的反码同原码,负数的反码数值位与原码相反 [+5]反码 = ,0101 = 05H [- 5]反码 = ,1010 = FAH [+0]反码 = ,0000 = 00H [- 0]反码 = ,1111 = FFH  0 的表示不惟一

23 补码(Two’s Complement)表示法:
正数的补码: 同原码 负数的补码:(1)写出与该负数相对应的正数的补码 (2)按位求反 (3)末位加一 例: 机器字长8位,[- 46]补码 = ? [46]补码 = = D2H 机器字长16位,[- 46]补码 = FFD2H [+0]补码 = = [- 0]补码  0 的表示惟一 按位求反 末位加一

24 n位二进制补码的表数范围: - 2n-1 ≤ N ≤ 2n-1-1
十进制 二进制 十六进制 十进制 十六进制 n= n=16 F FFF E FFE … … FF FFFF FE FFFE … … 无符号整数的表数范围: 0 ≤ N  ≤ 2n-1

25 补码的加法和减法: 求补运算  :对一个二进制数按位求反、末位加一 [X]补码  [-X]补码  [X]补码
加法规则:[X+Y]补码 = [X]补码 + [Y]补码 减法规则:[X-Y]补码 = [X]补码 + [-Y]补码 补码减法可转换为补码加法 例: 64 (-46) 18

26 进位: 由于运算结果超出了位数,最高有效位向
进位和溢出 进位: 由于运算结果超出了位数,最高有效位向 前的进位,这一位自然丢失,一般不表 示结果的对错。 溢出:表示结果超出了字长允许表示的范围, 一般会造成结果出错。 例: (-64) 进位 溢出

27 ASCII码:用一个字节来表示一个字符,低7位
 字符的表示 ASCII码:用一个字节来表示一个字符,低7位 为字符的ASCII值,最高位一般用作 校验位。 例: ‘A’ H ‘a’ H ‘1’ H 换行 0AH 回车 0DH 空格 H

28 第1章作业 Page ~1.8


Download ppt "清华大学计算机系列教材 IBM—PC汇编语言 程序设计(第二版)."

Similar presentations


Ads by Google