本章内容 汇编语言程序的格式 汇编语言程序的上机过程 伪指令语句 汇编语言程序设计的基本方法
汇编语言程序的格式 汇编语言程序的上机过程 伪指令语句 汇编语言程序设计的基本方法 本章内容
2学习目的 了解汇编语言程序的基本格式。及 其上机过程。 熟练握数据定义伪指令、段定义 伪指令、爷号定义伪指令、过程定 义伪指令。 熟练握汇编语言程序设计的一般 步骤以及顺序程序、分支程序、循 环程序、子程序设计的方法
了解汇编语言程序的基本格式,及 其上机过程。 熟练掌握数据定义伪指令、段定义 伪指令、符号定义伪指令、过程定 义伪指令。 熟练掌握汇编语言程序设计的一般 步骤以及顺序程序、分支程序、循 环程序、子程序设计的方法。 学习目的
6.1汇编语言与汇编程序 61.1汇编语言的基本概念 1机器语言与汇编语言( Machine language and Assembly Language 由二进制代码0,1表示的指令称为机器 指令,相应的程序称为机器语言程序。 用指令助记符表示的指令称为汇编语言 指令,对应的程序称为汇编语言程序
6.1 汇编语言与汇编程序 6.1.1 汇编语言的基本概念 1 机器语言与汇编语言(Machine Language and Assembly Language) 由二进制代码0,1表示的指令称为机器 指令,相应的程序称为机器语言程序 。 用指令助记符表示的指令称为汇编语言 指令,对应的程序称为汇编语言程序
例6-1将4位二进制数转换为ASCI码字 符。当数在0003-1001B时,对应的ASCI码为 0~9;当数在1010B~1111B时,对应的ASCI 码为A’~F’。设待转换的数据已在累加器AL中 (低4位)。 编制的机器语言程序与汇编语言 程序如下表所示
例6-1 将4位二进制数转换为ASCII码字 符。当数在0000B-1001B时,对应的ASCII码为 ‘0’~‘9’;当数在1010B~1111B时,对应的ASCII 码为‘A’~‘F’。设待转换的数据已在累加器AL中 (低4位)。 编制的机器语言程序与汇编语言 程序如下表所示
地址机器代码对应的汇编指令 E380:0000240F AND AL.OFH E380:00023C0A CMPAL,OAH E380:00047202 JB NUM E380:00060407 ADD.OZH E380:00080430 NUM: ADDAL30H E380:000AC3 RET
地 址 机器代码 对应的汇编指令 E380:0000 24 0F AND AL,0FH E380:0002 3C 0A CMPAL,0AH E380:0004 72 02 JB NUM E380:0006 04 07 ADD AL,07H E380:0008 04 30 NUM:ADDAL,30H E380:000A C3 RET
2.汇编语言与高级语言( Assembly language and Computer-independent language 汇编语言是一种依赖于计算机微处理器的语言 汇编语言一般不具有通用性和可移植性 进行汇编语言程序设计必须熟悉机器的硬件资 源和软件资源 高级语言是面向过程的语言 高级语言具有很好的通用性和可移植性
2.汇编语言与高级语言(Assembly Language and Computer-independent Language) • 汇编语言是一种依赖于计算机微处理器的语言 • 汇编语言一般不具有通用性和可移植性 • 进行汇编语言程序设计必须熟悉机器的硬件资 源和软件资源 • 高级语言是面向过程的语言 • 高级语言具有很好的通用性和可移植性
学习汇编语言的必要性 1.利用汇编语言可以设计出效率极髙的核 心底层程序。 2.用汇编语言编写的程序一般比用髙级语 言编写的程序执行得快.且所占内存较 3.汇编语言程序能够直接有效地利用机器 硬件资源。 4.学习汇编语言对于理解和掌握计算机硬 件组成及工作原理是十分重要的
学习汇编语言的必要性 1. 利用汇编语言可以设计出效率极高的核 心底层程序。 2. 用汇编语言编写的程序一般比用高级语 言编写的程序执行得快,且所占内存较 少。 3. 汇编语言程序能够直接有效地利用机器 硬件资源。 4. 学习汇编语言对于理解和掌握计算机硬 件组成及工作原理是十分重要的
612汇编语言源程序的组成 1.汇编语言源程序的结构( Program Structure) 例6-2完整的汇编语言源程序示例。 NAME HEXTOASC DATA SEGMENT ;数据段定义开始 HEX DB 5AH ASC DB 2 DUP(?) DATA ENDS ;数据段定义结束
6.1.2 汇编语言源程序的组成 1.汇编语言源程序的结构(Program Structure) 例6-2 完整的汇编语言源程序示例。 NAME HEXTOASC ;***************************************************** DATA SEGMENT ; 数据段定义开始 HEX DB 5AH ASC DB 2 DUP(?) DATA ENDS ; 数据段定义结束 ;*****************************************************
STACK SEGMENT ;堆栈段定义开始 DB 256 DUP(S) TOP EQU S-STACK STACK ENDS ;堆栈段定义结束 ÷kkkκkκkκkκk:κk:κk:κz:κk;κk:κz CODE SEGMENT ;代码段定义开始 ASSUME CS: CODE. DS: DATA. SS: STACK START: MOV AX. DATA ;主程序开始
;************************************************* STACK SEGMENT ; 堆栈段定义开始 DB 256 DUP('S') TOP EQU $-STACK STACK ENDS ; 堆栈段定义结束 ;************************************************* ;************************************************ CODE SEGMENT ; 代码段定义开始 ASSUME CS:CODE, DS:DATA, SS:STACK START: MOV AX, DATA ; 主程序开始
MOV DS. AX MOV AX. STACK MOV SS.AX MOV SP TOP MOV BX OFFSET ASC MOV AL HEX MOV AH.AL MOV CL. 4 SHR AL CL CALL NEAR PTR CONVERT ;主程序结束
MOV DS, AX MOV AX, STACK MOV SS, AX MOV SP, TOP MOV BX, OFFSET ASC MOV AL, HEX MOV AH, AL MOV CL, 4 SHR AL, CL CALL NEAR PTR CONVERT … HLT ; 主程序结束