ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

2.3 汇编语言指令

2021-12-15 16:31:24  阅读:285  来源: 互联网

标签:标号 count 操作数 示例 汇编语言 注释 指令 2.3


2.3 汇编语言指令

  • 指令(instruction)是一种语句,它在程序汇编编译时变得可执行。
  • 汇编器将指令翻译为机器语言字节,并且在运行时由 CPU 加载和执行。

指令组成

一条指令有四个组成部分:

  • 标号(可选)
  • 指令助记符(必需)
  • 操作数(通常是必需的)
  • 注释(可选)

标号(label)

  • 标号(label)是一种标识符,是指令和数据的位置标记。
  • 标号位于指令、变量的前端,表示指令的地址,表示变量的地址

标号的两种类型

  • 数据标号
  • 代码标号

数据标号

  • 数据标号标识变量的位置,它提供了一种方便的手段在代码中引用该变量。
count DWORD 100			;定义了一个名为 count 的变量

代码标号

  • 标记转移的目的地。
  • 下面的 JMP 指令创建一个循环:将程序控制传递给标号 target 标识的位置:
target:    mov ax,bx
	......
jmp target

指令助记符

  • 是标记一条指令的短单词(有助于记忆的符号)
助记符 说明 助记符 说明
MOV 传送(分配)数值 MUL 相乘
ADD 相加 JMP 跳转到一个新位置
SUB 相减 CALL 调用一个子程序

操作数

  • 操作数是指令输入输出的数值
  • 操作数的个数范围是 0〜3 个,每个操作数可以是寄存器、内存操作数、整数表达式和输入输岀端口。
  • 生成内存操作数有不同的方法
    • 比如,使用变量名、带方括号的寄存器等。变量名暗示了变量地址,并指示计算机使用给定地址的内存内容。下表列出了一些操作数示例:

操作数有固有顺序。

当指令有多个操作数时,通常第一个操作数被称为目的操作数,第二个操作数被称为源操作数(source operand)。

示例 操作数类型 示例 操作数类型
96 整数常量 eax 寄存器
2+4 整数表达式 count 内存

现在来考虑一些包含不同个数操作数的汇编语言指令示例。

比如,STC 指令没有操作数:

stc                    ; STC 进位标志位置 1

INC 指令有一个操作数:

inc eax                ;EAX 加 1

MOV 指令有两个操作数:

mov count, ebx         ;将 EBX 传送给变量 count

一般情况下,目的操作数的内容由指令修改。比如,在 mov 指令中,数据就是从源操作数复制到目的操作数。

IMUL 指令有三个操作数,第一个是目的操作数,第二个和第三个是进行乘法的源操作数:

imul eax,ebx,5		;在上例中,EBX 与 5 相乘,结果存放在 EAX 寄存器中。

注释

注释有两种指定方法:

  • 单行注释,用分号 ;
  • 块注释,用 COMMENT 伪指令和一个用户定义的符号开始,直到相同的用户定义符号出现为止。

块注释

示例如下:

COMMENT !
This line is a comment.
This line is also a comment.
!

其他符号也可以使用,只要该符号不出现在注释行中:

COMMENT & 
This line is a comment.
This line is also a comment.
&

标签:标号,count,操作数,示例,汇编语言,注释,指令,2.3
来源: https://www.cnblogs.com/tupo/p/15693367.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有