第四章汇编语言程序设计 4-0汇编语言介绍 41汇编语言程序格式 4-2 MASM中的表达式 4-3伪指令语句 4-4DOS和BIOS中断调用 45程序没计方法 2009-04-15 第四章汇编语言程序设计 10f168
2009-04-15 第四章 汇编语言程序设计 1 of 168 第四章 汇编语言程序设计 汇编语言程序设计 4-0 汇编语言介绍 4-1 汇编语言程序格式 汇编语言程序格式 4-2 MASM中的表达式 4-3 伪指令语句 4-4 DOS和BIOS中断调用 4-5 程序设计方法
4-0汇编语言介绍 汇编语言是一种面向机器的程序设计语言,不同类型的CPU, 其汇编指令也不尽相同。它是对机器语言的符号化描述,是 一门低级语言。 用汇编语言编写的程序叫“汇编语言程序”或“汇编语言源 程序”.这种程序较机器语言直观、易懂、便于交流和维护。 与其他高级语言一样,汇编语言源程序不能直接被计算机识 别并运行,它必须通过汇编程序翻译成机器能够识别的机器 语言程序(目标程序)才能运行。 2009-04-15 第四章汇编语言程序设计 2of168
2009-04-15 第四章 汇编语言程序设计 2 of 168 4-0 汇编语言介绍 汇编语言是一种面向机器的程序设计语言,不同类型的CPU, 其汇编指令也不尽相同。它是对机器语言的符号化描述,是 一门低级语言。 用汇编语言编写的程序叫“汇编语言程序”或“汇编语言源 程序”.这种程序较机器语言直观、易懂、便于交流和维护。 与其他高级语言一样,汇编语言源程序不能直接被计算机识 别并运行,它必须通过汇编程序翻译成机器能够识别的机器 语言程序(目标程序)才能运行
汇编程序是系统程序,是用来将用户编写的汇编语 言(源)程序转换为机器代码的系统工具程序。 利用汇编程序将汇编语言源程序翻译成机器代码的 过程称为汇编 EDIT *.ASM MASM *.OB] LINK *.EXE 编辑 源程序 汇编 浮动目标程序 连接 可执行程序 2009-04-15 第四章汇编语言程序设计 3of168
2009-04-15 第四章 汇编语言程序设计 3 of 168 汇编程序是系统程序,是用来将用户编写的汇编语 言(源)程序转换为机器代码的系统工具程序。 利用汇编程序将汇编语言源程序翻译成机器代码的 过程称为汇编。 EDIT *.ASM MASM *.OBJ LINK *.EXE 编辑 源程序 汇编 浮动目标程序 连接 可执行程序
编译程序和连接程序我们目前使用的通常有两种: 1、MicroSoft公司的MASM.EXE和LINK.EXE。 2、Borland公司的TASM.EXE和TLINK.EXE。 汇编语言特点: >面向机器,与硬件紧密相关。 >编制的程序简洁,高效,实时性好,节省内存, 运行快。 2009-04-15 第四章汇编语言程序设计 4of168
2009-04-15 第四章 汇编语言程序设计 4 of 168 汇编语言特点: 汇编语言特点: 面向机器,与硬件紧密相关。 编制的程序简洁,高效,实时性好,节省内存, 运行快。 编译程序和连接程序我们目前使用的通常有两种: 1、MicroSoft公司的 MASM.EXE 和 LINK.EXE。 2、Borland 公司的 TASM.EXE 和 TLINK.EXE
汇编语言程序格式: 例4一I在屏幕上显示并打印字符串“This Is a sample program." DATA SEGMENT ;数据段 DA1 DB 'This Is a sample program.' DB ODH,OAH,$ DATA ENDS STACK SEGMENT ST1 DB 100DUP(?) STACK ENDS CODE SEGMENT ;代码段 ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC FAR START:MOV AX,STACK ;送堆栈段段地址 MOV SS,AX 2009-04-15 第四章汇编语言程序设计 5of168
2009-04-15 第四章 汇编语言程序设计 5 of 168 汇编语言程序格式: 汇编语言程序格式: 例4-l 在屏幕上显示并打印字符串“This Is a sample program.” DATA SEGMENT ;数据段 DA1 DB ‘This Is a sample program.’ DB 0DH,0AH, ‘$’ DATA ENDS STACK SEGMENT ST1 DB 100 DUP(?) STACK ENDS CODE SEGMENT ;代码段 ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC FAR START: MOV AX,STACK ;送堆栈段段地址 MOV SS,AX
PUSH DS ;返▣DOS用 MOV AX,O PUSH AX MOV AX,DATA :送数据段段地址 MOV DS,AX MOV AH,9 DOS9号功能调用,显示字符串 MOV DX,OFFSET DA1 INT 21H RET MAIN ENDP CODE ENDS END START 2009-04-15 第四章汇编语言程序设计 6of168
2009-04-15 第四章 汇编语言程序设计 6 of 168 PUSH DS ;返回DOS用 MOV AX,0 PUSH AX MOV AX,DATA ;送数据段段地址 MOV DS,AX MOV AH,9 ;DOS 9号功能调用,显示字符串 MOV DX,OFFSET DA1 INT 21H RET MAIN ENDP CODE ENDS END START
4-1汇编语言程序格式 >一个汇编语言程序可由若干个(此例有3个)段 组成。每个段均以SEGMENT开始以ENDS结束。 每个段可以包含若干语句,而语句又可以是指 令语句或伪指令语句两种。如程序中用到的 ASSUME,DB,SEGMENT-.ENDS等为伪指令语句。 每条语句可由标识符、保留字、表达式等元素 组成。 2009-04-15 第四章汇编语言程序设计 7of168
2009-04-15 第四章 汇编语言程序设计 7 of 168 4-1 汇编语言程序格式 一个汇编语言程序可由若干个(此例有3个)段 组成。每个段均以SEGMENT开始以ENDS结束。 每个段可以包含若干语句,而语句又可以是指 令语句或伪指令语句两种。如程序中用到的 ASSUME,DB,SEGMENT…ENDS等为伪指令语句。 每条语句可由标识符、保留字、表达式等元素 组成
一、指令性语句 指令性语句与机器指令相对应,汇编程序可将它翻译成目标代 码。语句格式为: 标号:指令助记符操作数,操作数;注释 标号:符号地址,后跟“:”,使用英文大小写字母阿拉伯字 母和特殊字符,第一个非数字,≤31个 助记符:与指令对应,不可省。回 操作数:参加运算的数据,用常数、变量、标号、寄存器名或 表达式。 注释:说明一指令或程序功能。可省略。用“;”隔离。 2009-04-15 第四章汇编语言程序设计 8of168
2009-04-15 第四章 汇编语言程序设计 8 of 168 一、 指令性语句 指令性语句与机器指令相对应,汇编程序可将它翻译成目标代 码。语句格式为: 标号:指令助记符 操作数,操作数;注释 标 号:符号地址,后跟“:”,使用英文大小写字母阿拉伯字 母和特殊字符,第一个非数字,≦31个 助记符:与指令对应,不可省。 操作数:参加运算的数据,用常数、变量、标号、寄存器名或 表达式。 注 释:说明一指令或程序功能。可省略。用“ ;”隔离
二、伪指令语句 伪指令语句无对应的机器指令,汇编程序汇编源程序时对伪指令 进行处理,它可完成数据定义,存储区分配,段定义,段分配, 指示程序结束等功能。语句格式为: 名字伪指令指示符操作数,操作数;注释 名字:赋予伪指令的名称,名字后不允许带冒号“:”,可省略。 名字常为变量名、段名、过程名、符号名等。 指示符:汇编程序MASM规定的符号,二各种定义语句后详述。 操作数:按伪指令要求可有可无,操作数可以是常数、变量、字 符串、表达式等。 注释:功能和使用与指令性语句相同。 2009-04-15 第四章汇编语言程序设计 9of168
2009-04-15 第四章 汇编语言程序设计 9 of 168 二、伪指令语句 二、伪指令语句 伪指令语句无对应的机器指令,汇编程序汇编源程序时对伪指令 进行处理,它可完成数据定义,存储区分配,段定义,段分配, 指示程序结束等功能。语句格式为: 名字 伪指令指示符 操作数,操作数;注释 名 字:赋予伪指令的名称,名字后不允许带冒号“:”,可省略。 名字常为变量名、段名、过程名、符号名等。 指示符: 汇编程序MASM规定的符号,各种定义语句后详述。 操作数:按伪指令要求可有可无,操作数可以是常数、变量、字 符串、表达式等。 注 释:功能和使用与指令性语句相同
三、数据项一常数、变量和标号是三种基本数据项。 1.常数 二进制(B)、八进制(Q或O)、十进制(D)、十六进 制(H)、ASCI码字符串(用单引号abcd)。 2.变量 常指存放在M中的数值,程序运行中可修改。 三个属性: ·段值(SEGMENT):变量所在段的段基址。 ●段偏移地址(OFFSET):变量地址与所在段首地址之间的地 址偏移字节数。 类型(TYPE):变量中每个元素包含的字节数,有字节变量 (BYTE),字变量(WORD)及双字变量(DWORD)等 2009-04-15 第四章汇编语言程序设计 10of168
2009-04-15 第四章 汇编语言程序设计 10 of 168 三、数据项-常数、变量和标号是三种基本数据项。 1.常数 二进制 (B)、八进制 (Q或O) 、十进制 (D) 、十六进 制(H) 、 ASCll码字符串(用单引号‘abcd ’)。 2.变量 常指存放在M中的数值,程序运行中可修改。 三个属性: 段值(SEGMENT):变量所在段的段基址。 段偏移地址(OFFSET):变量地址与所在段首地址之间的地 址偏移字节数。 类型(TYPE):变量中每个元素包含的字节数,有字节变量 (BYTE), 字变量(WORD)及双字变量(DWORD)等