《微机原理A》 第五讲:汇编语言的基本语法(一) 主讲老师:王克义
《微机原理A》 第五讲: 汇编语言的基本语法(一) 主讲老师:王克义
本讲主要内容 汇编语言的主要特点 汇编语言源程序的基本结构 汇编语言的表达式和伪操作符
• 汇编语言的主要特点 • 汇编语言源程序的基本结构 • 汇编语言的表达式和伪操作符 本讲主要内容
Assemble Language 一种面向机器的程序设计语言,是一种用符号表 示的低级程序设计语言(机器语言的符号化描 述),通常是为特定计算机或计算机系列专门设 计的
Assemble Language • 一种面向机器的程序设计语言,是一种用符号表 示的低级程序设计语言(机器语言的符号化描 述),通常是为特定计算机或计算机系列专门设 计的
Assemble Language ·用汇编语言编写的程序不 能由机器直接执行,而必 须经汇编程序翻译成机器 0100100 语言程序。汇编语言指令 10001000 与翻译成的机器语言指令 之间基本是一一对应的关 assembler 系 汇编过程示意: MOr AK BX CMP AK.0 JB NEXT MMP PPP
• 用汇编语言编写的程序不 能由机器直接执行,而必 须经汇编程序翻译成机器 语言程序。汇编语言指令 与翻译成的机器语言指令 之间基本是一一对应的关 系。 • 汇编过程示意: Assemble Language
采用汇编语言进行程序设计的优点 ·可充分利用机器的硬件功能和结构特点,加快程 序的执行速度,减少目标程序所占用的存储空间 常用来编写实时控制程序、实时通信程序,有时 也用来编制某些系统软件程序
• 采用汇编语言进行程序设计的优点: • 可充分利用机器的硬件功能和结构特点,加快程 序的执行速度,减少目标程序所占用的存储空间。 • 常用来编写实时控制程序、实时通信程序,有时 也用来编制某些系统软件程序
缺点 1.编程效率低(与人们描述计算过程的需要差距大) 2.与机器硬件的具体结构联系过于紧密 -在一种结构的机器上开发的程序极难移植 到另一种不同结构的机器上去
• 缺点: 1. 编程效率低(与人们描述计算过程的需要差距大) 2. 与机器硬件的具体结构联系过于紧密 ——在一种结构的机器上开发的程序极难移植 到另一种不同结构的机器上去
示例程序 DATA SEGMENT 数据段 NUM DV0011101000000111B NoTES DB 'The result is: ,'s DATA ENDS CODE SEGMENT 代码段 ASSUME CS: CODEDS: DATA BEGIN MOV AX DATA MOV DS.AX MOV DXOFFSET NOTES;显示提示信息 MOV AH 9H INT 21H MOV BX.NUM ;将数装入BX MOV CH,4 CH作循环计数器
DATA SEGMENT ;数据段 NUM DW 0011101000000111B NOTES DB ‘The result is :’ , ’$’ DATA ENDS CODE SEGMENT ;代码段 ASSUME CS:CODE,DS:DATA BEGIN: MOV AX, DATA MOV DS,AX MOV DX,OFFSET NOTES ;显示提示信息 MOV AH,9H INT 21H MOV BX,NUM ;将数装入BX MOV CH,4 ;CH作循环计数器 示例程序
示例程序(续) ROTATE DISPLAY: MOV CL,4;CL中放移位位数 MOV DL,AL;显示16 进制数 ROL BX. CL MOV AH. MOV ALBL INT 21H AND AL,0FH;AL中为一位16进制数 DEC CH ADD AL,30H;转换为ASC‖码值 JNZ ROTATE CMP AL,93;是0~9的数码? MOV AX,4C00H;返回 DOS 儿LED| SPLAY INT 21H ADD AL,07H;在A~F之间 CODE ENDS;代码段 结束 END BEGIN;模块 结束
ROTATE : DISPLAY: MOV CL, 4 ;CL中放移位位数 MOV DL, AL ;显示16 进制数 ROL BX,CL MOV AH,2 MOV AL,BL INT 21H AND AL,0FH ;AL中为一位16进制数 DEC CH ADD AL,30H ;转换为ASCII码值 JNZ ROTATE CMP AL,’9’ ;是0~9的数码? MOV AX,4C00H;返回 DOS JLE DISPLAY INT 21H ADD AL,07H ;在A~F之间 CODE ENDS ;代码段 结束 END BEGIN ;模块 结束 示例程序(续)
堆栈段定义格式 STACK SEGMENT STACK STA DB 50 DUP(? TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS: CODE DS: DATA. SS: STACK START: MOV AX. DATA MOV DS.AX MOV AXSTACK MOV SS, AX MOV SP TOP CODE ENDS END START
堆栈段定义格式 STACK SEGMENT STACK STA DB 50 DUP (?) TOP EQU LENGTH STA 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 : CODE ENDS END START
51汇编语言源程序的组成 1.伪指令语句和指令语句 ·汇编语言源程序中除了包含机器指令外,还应包 含说明性的“指令”。这些说明性的“指令”是面向汇 编程序和连接程序的,称为伪指令, 宏汇编程序5.0版(MASM5.0)规定,汇编语言源 程序的每行只能写一个语句:指令语句或伪指令 语句。行长不能超过128个字符。每个语句最多 可由四个字段组成:名字字段、操作字段、操作 数字段和注释字段
5.1 汇编语言源程序的组成 1. 伪指令语句和指令语句 • 汇编语言源程序中除了包含机器指令外,还应包 含说明性的“指令”。这些说明性的“指令”是面向汇 编程序和连接程序的,称为伪指令。 • 宏汇编程序5.0版(MASM V5.0)规定,汇编语言源 程序的每行只能写一个语句: 指令语句或伪指令 语句。行长不能超过128个字符。每个语句最多 可由四个字段组成: 名字字段、操作字段、操作 数字段和注释字段