汇编指令
处理器指令
-
程序用程序设计语言编写,由指令构成
-
指令由
操作码
和操作数(地址码)
组成 -
操作码(Opcode)表明处理器执行的操作
- 例如数据传送、加法运算、跳转等操作
- 汇编语言使用指令助记符表示
-
操作数(Operand)是参与操作的数据对象
- 主要以寄存器名或地址形式指明数据的来源
- 汇编语言使用寄存器、常量、变量等形式表示
数据传送指令
-
传送指令的助记符:MOV(来源于Move)
-
将数据从一个位置传送到另一个位置(类似高级语言的赋值语句)
-
指令为:mov dest,src
-
src为源操作数:被传送的数据或数据所在的位置
-
dest为目的操作数:数据将要传送到的位置
-
-
三种传送指令形式:常量、变量、寄存器 传送
- mov ax,100 ; 将100(常量)传送到ax
- mov ax,dvar ; 将dvar(变量)传送到ax
- mov ax,bx ; 将bx(寄存器)传送到ax
汇编语句语言
1.标号、名字、标识符
- 标号:执行性语句中
- 冒号分隔
- 表示处理器指令在主存中的逻辑地址
- 指示分支、循环等程序的目的地址
- 名字:说明性语句中
- 空格或制表符分隔
- 变量名、段名、字程序名等
- 反映变量、段和子程序等的逻辑地址
- 标识符:最多由31个字母、数字及规定的特俗符号组成
- 不能以数字开头
- 一个源程序中,用户定义的每个标识符必须唯一
- 不能使用保留字
- 硬指令助记符:mov…
- 伪指令助记符:byte、db…
- 操作符:offset…
- 寄存器名:ax…
2. 助记符
- 助记符是帮助记忆指令的符号
- 硬指令助记符表示处理器指令
- 伪指令助记符表示一个汇编命令
- 处理器指令示例:传送指令mov
- 伪指令示例:字节变量定义
- 助记符:byte(或db)
- 功能:在内存占用若干储存空间,用于保存变量值
3. 操作数和参数
- 处理器指令的操作数:表示参与操作的对象
- 具体的常量
- 保存在寄存器的数据
- 保存在存储器中的变量
- 逗号前常是目的操作数,逗号后常是源操作数
- 伪指令的参数
- 常量、变脸名、表达式等
- 可以由多个,参数之间用逗号分隔
程序的开始和结束
1.程序开始执行的位置
- 使用一个标号(例如:START)
- 作为汇编结束END伪指令的参数
2.应用程序执行终止
- 语句
EXIT 0
终止程序执行 - 返回操作系统,并提供一个返回代码(0)
3.源程序汇编结束
- 使用END伪指令语句
执行终止 ≠ 汇编结束
第一个程序
DATAS SEGMENT
msg db 'hello,world',13,10,0 ;相当于"hello,world\n","13,10"表示"\n","0"表示字符串结尾字符
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ax,offset msg ;指定字符串的偏移地址
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START