清华大学出版社 TSINGHUA UNIVERSITY PRESS 清华大学计算机系列教材 沈美名温冬蝉编著 IBM-PC汇编语言 通高等育九五国家粒要重点教材 清华大学计算机系列教材 程序设计(第2版) IBM-PC 汇编语言 程序设计 第2版 12 9 )清华大学出版社
IBM—PC汇编语言 程序设计(第2版) 清华大学计算机系列教材 沈美名 温冬蝉 编著
清华大学出版社 TSINGHUA UNIVERSITY PRESS 计算机语言的发展 机器语言 高级语言 FORTRAN BASIC COBOL PASCAL 汇编语言 C/C++ JAVA
计算机语言的发展 机器语言 FORTRAN BASIC COBOL PASCAL C/C++ JAVA ... 汇编语言 高级语言
清华大学出版社 TSINGHUA UNIVERSITY PRESS 汇编语言的特点 ·面向机器的低级语言,通常是为特定的计算 机或计算机系列专门设计的。 ·保持了机器语言的优点,具有直接和简捷的 特点。 可有效地访问、控制计算机的各种硬件设备, 如磁盘、存储、cPU、功o端口等。 ·目标代码简短,占用内存少,执行速度快, 是高效的程序设计语言。 经常与高级语言配合使用,应用十分广泛
汇编语言的特点 • 面向机器的低级语言,通常是为特定的计算 机或计算机系列专门设计的。 • 保持了机器语言的优点,具有直接和简捷 的 特点。 • 可有效地访问、控制计算机的各种硬件设备, 如磁盘、存储器、CPU、I/O端口等。 • 目标代码简短,占用内存少,执行速度快, 是高效的程序设计语言。 • 经常与高级语言配合使用,应用十分广泛
清华大学出版社 TSINGHUA UNIVERSITY PRESS 编程实现c=a+b,并在屏幕上显示出结果。 例1 #include stdafx. ht #include stdio.h'i int main(int argc, char* argyll i int a, b, c a=1; 编译后的目标文 b=2 件达到359KB c=a+b printf(“c=%dⅦn",c); return u;
#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; } 编程实现 c =a+b,并在屏幕上显示出结果。 例1 编译后的目标文 件达到3.59KB
大学版 例2 C= a +b GHUA UNIVERSITY PRESS data segment mov a, moy b. 2 mov aa add oV G,日 str ing ea dx, string data ends 汇编后的目 mov ah, 09 int 21h code segment 标文件只有)ad,3h mov d. c ma i n proc far 208字节 moV a ass ds: data, es datas. code, int 21h start moy d. oah int 21h push ds moy d. odh sue ax ax int 21h push ax ret oV ax, data ma n endp mov ds. ax code ends moV es. ax 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 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. C = a + b 汇编后的目 标文件只有 208字节