汇编语言程序结构剖析.pptx
文本预览下载声明
汇编语言程序设计
刘辉 王勇 徐建平 编著;;计算机语言的发展 ;;汇编语言的特点
面向机器的低级语言,通常是为特定的计算
机或计算机系列专门设计的。
保持了机器语言的优点,具有直接和简捷
的特点。
可有效地访问、控制计算机的各种硬件设备,
如磁盘、存储器、CPU、I/O端口等。
目标代码简短,占用内存少,执行速度快,
是高效的程序设计语言。
? 经常与高级语言配合使用,应用十分广泛。;1.1 汇编语言程序的结构形式
1.2 汇编语言的各种伪指令
1.3 masm的上机操作步骤
;1.1 汇编语言程序的结构形式
例 1. 编程实现 c =a+b,并在屏幕上显示出结果。
算法分析:定义存放加数和被加数值的变量a,b;给a,b以确定的值;实现a+b的操作并把结果存放在变量 c中;输出运算结果。
分别用高级语言c和汇编语言编写的代码如下:;
#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;
}
;
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 ;a+b
mov c,al ;运算结果存入c变量中
lea dx,string
mov ah,09
int 21h ;输出字符串
;
add c,30h
;整数转化为字符,因为汇编输出都是字符
mov dl,c
mov ah,2
int 21h
;输出dl中字符 ,这是21号中断的功能调用
mov dl,0ah
int 21h ;换行
mov dl,0dh
int 21h ;回车
ret
main endp
code ends
end start
;汇编语言与高级语言的比较;汇编语言的应用
系统程序、效率代码、I/O驱动程序
70%以上的系统软件是用汇编语言编写的。
某些快速处理、位处理、访问硬件设备等
高效程序是用汇编语言编写的。
高级绘图程序、视频游戏程序一般是用汇
编语言编写的。;例2. 在屏幕上显示字符串”This is an assembly language program!”
题目分析:
字符串应存放在一个存储单元中,也即一个变量中,这要在数据区中加以定义
在代码段中,首先把程序中用到的各个段与相应的寄存器名对应起来,这要用到assume伪操作;c. 调用dos中断显示字符串,中断执行前先做显示的准备操作:数据段的地址存入ds寄存器;从数据区的存储单元中取出要显示的字符串的存放地址存入dx寄存器;执行中断操作,显示DS:DX中的内容
汇编程序如下:
;;ex102.asm display a string
data segment ;定义数据段
str db ‘This is an assembly language program!’,‘$’,13,10
;在str存储单元中的字符串内容
data ends
code segment ;定义代码段
main proc far ;主程序从此开始
assume cs:code,ds:data
显示全部