IBM-PC 汇编语言程序设计
毛 希 平
mxping@tsinghua.edu.cn
清华大学计算机系
学习目标与要求,
? 了解以 Intel 系列微处理器为基础的 PC机的基本结构
(编程结构)
? 掌握 Intel 系列微处理器的 指令系统 及 寻址方式
? 掌握用汇编语言设计、编写、调试和运行程序的方法
? 学会使用 DOS和 BIOS功能调用及高级汇编语言技术
? 了解汇编语言与高级语言的交叉编程技术
教材,
,IBM-PC 汇编语言程序设计(第 2版),
参考资料,
,IBM-PC 汇编语言程序设计,
,IBM-PC 汇编语言程序设计实验教程,
,IBM PC Assembly Language and Programming,,
Peter Abel
, The Art of Assembly Language,, Randy Hyde
http://webster.cs.ucr.edu/
教学环节,
课堂教学,48 学时
自 学,第 10,11章
上机实验,第八周开始, 不少于 24学时
考 核, 期中考查(开卷) 期末考试(开卷)
作 业,每周二交
助 教,穆飞 mufei@mails.tsinghua.edu.cn
绪 论
计算机语言发展简史
机器语言
汇编语言
高级语言
FORTRAN
BASIC
COBOL
PASCAL
C/C++
JAVA
…..,
机器语言, 依赖于机器的低级语言,书写格式为二进制代码。
优点, 执行速度快,效率高。
缺点,表达的意义不直观,编写、阅读、调试较困难。
汇编语言, 是一种符号语言,与机器语言一一对应;它使用
助记符 表示相应的操作,并遵循一定的语法规则。
与机器语言有类似的优、缺点,但比机器语言更
易于为人们所理解。
高级语言, 面向人的语言,有多种类型。
优点,便于阅读,易学易用,不涉及硬件,具有通用性。
缺点,目标代码冗长,占用内存多,从而执行时间长,
效率不高,不能对某些硬件进行操作。
汇编语言的特点,
? 面向机器的低级语言,通常是为特定的计算机或计算机
系列 专门设计的。
? 保持了机器语言的优点,具有直接和简洁的特点。
? 可有效地访问、控制计算机的各种硬件设备,如磁盘,
存储器,CPU,I/O端口等。
? 目标代码简短,占用内存少,执行速度快,是高效的
程序设计语言。
? 经常与高级语言配合使用,应用十分广泛。
汇编语言的应用,
? 早期大多数系统软件是用汇编语言编写的。
? 某些快速处理、位处理、访问硬件设备等高效程序是用汇编
语言编写的。
? 某些高级绘图程序、视频游戏程序等是用汇编语言编写的。
下面是两个小例子,例 1是用高级语言 VC++编写的,
例 2是用汇编语言编写的。它们完成相同的功能,
即把 a,b的内容相加赋给 c,并在屏幕上显示出来 。
例 1
#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;
}
编译后的目标文件
达到 3.59KB
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
int 21h
mov dl,0ah
int 21h
mov dl,0dh
int 21h
ret
main endp
code ends
end start
例 2
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字节