3.5.3 伪操作

 在C语言中,为了编程方便,编译器会定义一系列与处理命令,并用#来标识,如#include,#define,#if,#else,#end等。这些预处理命令并不是真正的C语言关键字,而是为了编程方便,编译器提供给我们的使用的预定义标识符。一个C程序经过预处理后,这些预处理命令一般会全部消失,预处理后的代码变成了一个完全由C语言关键字和标准语法构成的原汁原味的C程序,然后编译器才能对这些源程序进行语法,语义分析,最后变异成二进制可执行文件,在整个编译过程中,编译器是不认识这些预处理命令的,如果编译之前不坐处理,则编译器就会报错。

   同理,汇编中,为了编程方便,也有助记符,方便对汇编程序做各种处理,如使用AREA来定义一个段section, 使用GBLA来定义一个数据,使用ENTRY来制定汇编程序入口,这些指令助记符统称为伪指令或者伪操作。伪操作是为便携汇编程序服务的,即使在同一个CPU架构下,不同的编译环境或者汇编器虽然会遵循和兼容同一套指令集,但是可能定义不同的伪指令,使用的方法和格式也不同。

    伪指令一般用于符号定义,数据定义,汇编程序结构控制等场合,在一个汇编中经常使用的伪指令如下。

GBLA a;定一个一个全局算数变量a,并初始化为0

a SETA 10 给算数变量a 设置为10

GBLL b 定义一个全局逻辑变量b,并出实话位0

b SETL 20 b = 20

GBLS STR  定义一个全局字符串,str,初始化位0

STR SETS "higosasdaf" 将字符串赋值

LCLA a 定义一个全局算术变量a, 并初始化位0

LCLL b 定义一个局部逻辑变量b,并初始化位false

LCLS name 定义一个局部字符串变量,并初始化位0

name SETS "xsanp" 给局部字符串变量赋值

 关于数据定义,常用的伪指令又DCD,DCB,SPACE,DATA 这些伪指令的使用方法如下

DATA1 DCB 10,20,30,40

STR DCB "higosasdaf"

DATA2 DCD 10,20,30,40

BUF SPACE 100 

  除此之外,还有一些常用的伪指令操作,如用来表示程序的入口地址,程序的结束地址,用来定义段的属性等。

伪操作

说明

ALIGN

地址对齐

AREA

用来定义一个代码段或者数据段,常用的段属性位CODE/DATA

CODE16/CODE32

指令为THUMB或者ARM

ENTRY

程序入口

END

程序结束,停止编译

EQU

赋值伪指令,类似宏,给常量定义一个符号

EXPORT/GLOBAL

声明一个全局符号,可以被其它文件引用

IMPORT /EXTERN

引用其它文件的符号

GET/INCLUDE

包含文件,并在当前位置编译该文件,一般是程序文件

INCBIN

包含文件,一般是数据文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/590276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端 js 基础(1)

js 结果输出 &#xff08;点击按钮修改文字 &#xff09; <!DOCTYPE html> <html> <head></head><body><h2>Head 中的 JavaScript</h2><p id"demo">一个段落。</p><button type"button" onclic…

基于PHP的校园代购商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的校园代购商城系统 一 介绍 此校园代购商城系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqlbootstrapphpstudyvscode 二 功能 …

2023/12/30 c++ work

定义一个Person类&#xff0c;私有成员int age&#xff0c;string &name&#xff0c;定义一个Stu类&#xff0c;包含私有成员double *score&#xff0c;写出两个类的构造函数、析构函数、拷贝构造和拷贝赋值函数&#xff0c;完成对Person的运算符重载(算术运算符、条件运算…

03 团队研究进一步详细介绍

一、印第安纳大学邢璐祎课题组 【团队网站】 https://www.xing-luyi.com/ 【团队介绍】 研究以形式化方法为特色&#xff0c;并保证系统中的安全性和隐私合规性&#xff0c;特别是物联网、云、移动和软件供应链。 【团队成果汇总】 物联网系统&#xff1a;[Oakland24][Se…

骑砍战团MOD开发(30)-游戏大地图map.txt

骑砍1战团mod开发-大地图制作方法_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1rz4y1c7wH/ 一.骑砍游戏大地图 骑砍RTS视角游戏大地图 大地图静态模型(map.txt) 军团/城镇图标(module_parties.py). 骑砍大地图的战争迷雾和天气通过API进行管理和控制: # Weather-h…

Spring Boot 配置文件

文章目录 一、什么是配置文件二、Spring Boot 配置文件2.1 概念2.2 配置文件的格式 三、properties 配置文件说明3.1 properties 基本语法3.2 读取配置文件3.3 properties 缺点分析 四、 yml 配置文件说明4.1 yml 基本语法4.2 yml 的使用4.3 关于单双引号4.4 yml 优缺点 五、验…

分库分表之Mycat应用学习五

5 Mycat 离线扩缩容 当我们规划了数据分片&#xff0c;而数据已经超过了单个节点的存储上线&#xff0c;或者需要下线节 点的时候&#xff0c;就需要对数据重新分片。 5.1 Mycat 自带的工具 5.1.1 准备工作 1、mycat 所在环境安装 mysql 客户端程序。 2、mycat 的 lib 目录…

48、激活函数 - 梯度消失和梯度爆炸

简单介绍下梯度消失和梯度爆炸,这个不是重点,但是我觉得有必要再深入了解这个概念,以及很多激活函数为什么是可以防止梯度消失的。 梯度消失和梯度爆炸实际上是在神经网络训练过程中经常会遇到的两类问题,这两类问题都与梯度有关。 什么是梯度 在神经网络训练中,梯度是指…

深度学习 | Transformer模型及代码实现

Transformer 是 Google 的团队在 2017 年提出的一种 NLP 经典模型&#xff0c;现在比较火热的 Bert 也是基于 Transformer。Transformer 模型使用了 Self-Attention 机制&#xff0c;不采用 RNN 的顺序结构&#xff0c;使得模型可以并行化训练&#xff0c;而且能够拥有全局信息…

一年百模大战下来,有哪些技术趋势和行业真相逐渐浮出水面?

介绍 本人是独立开源软件开发者&#xff0c;参与很多项目建设&#xff0c;谈下感受。 ChatGPT开始AI生成元年&#xff0c;经历一年依然是第一。 LLaMA的巧合开启开源大模型浪潮。 名词解释 AIGC : AI-Generated Content 指利用人工智能技术&#xff08;生成式AI路径&#x…

类和接口

内容大部分来源于学习笔记&#xff0c;随手记录笔记内容以及个人笔记 对象Object java是面向对象的语言&#xff0c;一个对象包含状态和行为 可以这样理解&#xff0c;我眼前的石头&#xff0c;手里水杯&#xff0c;这些具体到某一个个体&#xff0c;这就是对象&#xff1b;…

非科班,培训出身,怎么进大厂?

今天分享一下我是怎么进大厂的经历&#xff0c;希望能给大家带来一点点启发&#xff01; 阿七毕业于上海一所大学的管理学院&#xff0c;在读期间没写过一行 Java 代码。毕业之后二战考研失利。 回过头来看&#xff0c;也很庆幸这次考研失利&#xff0c;因为这个时候对社会一…

外贸网站显示不安全警告怎么办?消除网站不安全警告超全指南

外贸网站显示不安全警告怎么办&#xff1f;当用户访问你的网站&#xff0c;而您的网站没有部署SSL证书实现HTTPS加密时&#xff0c;网站就会显示不安全警告&#xff0c;这种警告&#xff0c;不仅有可能阻止用户继续浏览网站&#xff0c;影响网站声誉&#xff0c;还有可能影响网…

OpenOCD简介和下载安装(Ubuntu)

文章目录 OpenOCD简介OpenOCD软件模块OpenOCD源码下载OpenOCD安装 OpenOCD简介 OpenOCD&#xff08;Open On-Chip Debugger&#xff09;开放式片上调试器 OpenOCD官网 https://openocd.org/&#xff0c;进入官网点击 About 可以看到OpenOCD最初的设计是由国外一个叫Dominic Ra…

红队打靶练习:SAR: 1

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto 5、whatweb 小结 目录探测 1、gobuster 2、dirsearch WEB CMS 1、cms漏洞探索 2、RCE漏洞利用 提权 get user.txt 本地提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface:…

写在2024年初,软件测试面试笔记总结与分享

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;得准备年后面试了&#xff0c;又不知道从何下手&#xff01;为了帮大家节约时间&#xff0c;特意准备了一份面试相关的资料&#xff0c;内容非常的全面&#xff0c;真的可以好好补一补&#xff0c;希望大家在都能拿到…

LanceDB:在对抗数据复杂性战役中,您可信赖的坐骑

LanceDB 建立在 Lance&#xff08;一种开源列式数据格式&#xff09;之上&#xff0c;具有一些有趣的功能&#xff0c;使其对 AI/ML 具有吸引力。例如&#xff0c;LanceDB 支持显式和隐式矢量化&#xff0c;能够处理各种数据类型。LanceDB 与 PyTorch 和 TensorFlow 等领先的 M…

算法训练营Day30

#Java #回溯 开源学习资料 Feeling and experiences&#xff1a; 加油站&#xff1a;力扣题目链接 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 …

24届春招实习必备技能(一)之MyBatis Plus入门实践详解

MyBatis Plus入门实践详解 一、什么是MyBatis Plus? MyBatis Plus简称MP&#xff0c;是mybatis的增强工具&#xff0c;旨在增强&#xff0c;不做改变。MyBatis Plus内置了内置通用 Mapper、通用 Service&#xff0c;仅仅通过少量配置即可实现单表大部分 CRUD 操作&#xff0…

【LMM 003】生物医学领域的垂直类大型多模态模型 LLaVA-Med

论文标题&#xff1a;LLaVA-Med: Training a Large Language-and-Vision Assistant for Biomedicine in One Day 论文作者&#xff1a;Chunyuan Li∗, Cliff Wong∗, Sheng Zhang∗, Naoto Usuyama, Haotian Liu, Jianwei Yang Tristan Naumann, Hoifung Poon, Jianfeng Gao 作…