第4章汇编语言程序设计 本章主要教学内容 汇编语言和汇编程序的基本概念 伪指令语句的格式、功能及应用 汇编语言源程序书写规则、语句格式及程序分段 汇编语言源程序的建立、汇编、连接、调试及运行 程序设计方法
本章主要教学内容 . 汇编语言和汇编程序的基本概念 . 伪指令语句的格式、功能及应用 . 汇编语言源程序书写规则、语句格式及程序分段 . 汇编语言源程序的建立、汇编、连接、调试及运行 . 程序设计方法 第4章 汇编语言程序设计
第4章汇编语言程序设计 本章教学目的及要求 ●理解汇编语言和汇编程序的概念、特点及其应用。 掌握汇编语言源程序的书写规则、语句的基本格式、 程序的分段结构。 熟悉汇编语言的基本表达、伪指令语句及其应用 熟悉汇编语言程序的上机运行、调试过程,掌握 基本操作技能 ●能够独立编写和分析汇编程序
第4章 汇编语言程序设计 本章教学目的及要求 l 理解汇编语言和汇编程序的概念、特点及其应用。 l 掌握汇编语言源程序的书写规则、语句的基本格式、 程序的分段结构。 l 熟悉汇编语言的基本表达、伪指令语句及其应用。 l 熟悉汇编语言程序的上机运行、调试过程,掌握 基本操作技能。 l 能够独立编写和分析汇编程序
第4章汇编语言程序设计 1汇编语言和汇编程序的基本概念 2汇编语言源程序书写格式 38086汇编语言中的标识符、表达式和运算符 4伪指令语句 5D0S功能调用 6汇编语言程序设计基础
1 汇编语言和汇编程序的基本概念 第4章 汇编语言程序设计 2 汇编语言源程序书写格式 3 8086汇编语言中的标识符、表达式和运算符 5 DOS功能调用 4 伪指令语句 6 汇编语言程序设计基础
4.1汇编语言和汇编程序的基本概念 1、汇编语 汇编语言是一种介于器语言和高级语言之间 的计算机编程语言,是一种面向机器的语言。它和 机器码有一一对应的关系,所以允许程序员用汇编 语言直接对寄存器、存储器、IO端口以及CPU内部 的许多硬件进行操作,因此用汇编语言可以编写出 高质量的程序,用汇编语言编写的程序占用内存少, 执行速度快
4.1 汇编语言和汇编程序的基本概念 1、汇编语言 汇编语言是一种介于机器语言和高级语言之间 的计算机编程语言,是一种面向机器的语言。它和 机器码有一一对应的关系,所以允许程序员用汇编 语言直接对寄存器、存储器、I/O端口以及CPU内部 的许多硬件进行操作,因此用汇编语言可以编写出 高质量的程序,用汇编语言编写的程序占用内存少, 执行速度快
今机器码指令构成的指令系统叫机器语言(二进 制代码)。机器语言是能被计算机识别的惟 语言。 例如: MOV AX, im (B8) PUSH AX (50) MOV CX, im (B9) PUSH CX (51) MOV DX, im (BA) PUSH DX(52) MOV BX, im (BB) PUSH BX (53) POP AX (58) POP DX (5A) POP CX (59) POP BX (5B)
v 机器码指令构成的指令系统叫机器语言(二进 制代码)。机器语言是能被计算机识别的惟一 语言。 例如: MOV AX,im (B8) MOV DX,im (BA) MOV CX,im (B9) MOV BX,im (BB) PUSH AX (50) PUSH DX (52) PUSH CX (51) PUSH BX (53) POP AX (58) POP DX (5A) POP CX (59) POP BX (5B)
汇编语言程序必须先翻译成机器语言 程序才能执行。 汇编 翻译 机器执行 语言程序 语言程序 由汇编语言程序翻译成机器语言程序的过程, 称为汇编。完成汇编过程的系统程序称为汇编语 言程序或称为源程序
汇编语言程序必须先翻译成机器语言 程序才能执行。 由汇编语言程序翻译成机器语言程序的过程, 称为汇编。完成汇编过程的系统程序称为汇编语 言程序或称为源程序。 汇编 语言程序 翻译 机器 语言程序 执行
2、汇编程序 用汇编语言编写的源程序在输入计算机后,需要将其翻 译成目标程序,计算机才能执行相应指令,这个翻译过程称 为汇编,完成汇编任务的程序称为汇编程序 有基本汇编ASM( assembler)和宏汇编MASM ( MacroAssembler)两种。 汇编程序以汇编语言源程序文件作为输入,并由它产生 两种输出文件:目标程序文件和源程序列表文件。 目标程序文件经连接定位后由计算机执行; 源程序列表文件将列出源程序、目标程序的机器语 言代码及符号表
2、 汇编程序 用汇编语言编写的源程序在输入计算机后,需要将其翻 译成目标程序,计算机才能执行相应指令,这个翻译过程称 为汇编,完成汇编任务的程序称为汇编程序。 有 基 本 汇 编 A S M ( A s s e m b l e r ) 和 宏 汇 编 M A S M (MacroAssembler)两种。 汇编程序以汇编语言源程序文件作为输入,并由它产生 两种输出文件:目标程序文件和源程序列表文件。 Ø 目标程序文件经连接定位后由计算机执行; Ø 源程序列表文件将列出源程序、目标程序的机器语 言代码及符号表
汇编程序 ASM小汇编 今MASM宏汇编 推荐两个汇编网站 http://www.x86asm.com http://www.aogosoft.com
汇编程序 v ASM 小汇编 v MASM 宏汇编 推荐两个汇编网站 http://www.x86asm.com http://www.aogosoft.com
STACK SEGMEN PARA STACK“ STACK 定义堆栈段 DB 500 DUP (O) STACK ENDS DATA SEGMENT 定义数据段 DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS: CODE, DS: DATA, ES: DATA, SS: STACK PUSH DS MOV AX, 0 定义代码段 PUSH MOV AX, DATA MOV DS, AX MOV ES, AX RET MAIN ENDP CODE ENDS END
3、 汇编语言源程序的结构 一般来说,一个完整的汇编源程序应由三个 程序段组成,即代码段、数据段和堆栈段,每 个段都以SEGMENT开始,以ENDS结束,代 码段包含程序要执行的指令;堆栈段用来在内 存中建立一个堆栈区;数据段用来在内存中建 立一个适当容量的工作区,以存放程序中所需 的数据。 注意:一个源程序中,代码段是必须的,而数据 段和堆栈段可以没有或有其中一个。段定义时 一般最后定义代码段。 STACK SEGMENT PARA STACK ‘STACK’ DB 500 DUP(0) STACK ENDS DATA SEGMENT DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA, ES:DATA,SS:STACK PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX RET MAIN ENDP CODE ENDS END MAIN 定义堆栈段 定义数据段 定义代码段 SEGMENT ENDS SEGMENT ENDS SEGMENT ENDS MAIN PROC FAR MAIN ENDP END
例4-1编写一个两字相加的程序 DSEG SEGMENT MOV AX, ESEG DATAl DW OF865H MOV ES, AX DATA2 DW 360CH LEA SI, SUM DSEG ENDS MOV AX, DTTAI ADD ES: [SI], AX ESEG SEGMENT HLT SUM DW 2 DUP(? SEG ENDS ESEG ENDS END START CSEG SEGMENT 代码段:CODE ASSUME CS: CSEG, DS 数据段:DATA START: MOV AX, DSEG 堆栈段: STACK MOV DS, AX
v 例4-1 编写一个两字相加的程序 DSEG SEGMENT DATA1 DW 0F865H DATA2 DW 360CH DSEG ENDS ESEG SEGMENT SUM DW 2 DUP(?) ESEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,ES:ESEG START: MOV AX,DSEG MOV DS,AX MOV AX,ESEG MOV ES,AX LEA SI,SUM MOV AX,DTTA1 ADD ES:[SI],AX HLT CSEG ENDS END START 代码段:CODE 数据段:DATA 堆栈段:STACK