汇编:数据定义数据填充
数组的定义
在32位汇编语言中,定义数组时,通常使用定义数据指令(如 DB, DW, DD,DQ )和标签来指定数组的名称和内容。DB定义字节数组(每个元素占1字节)、DW定义字数组(每个元素占2字节)、DD定义双字数组(每个元素占4字节)、DQ定义四字数组(每个元素占8字节),以下是常见的数组定义格式:
.data
byte_array db 13,23,14,25,30 ;定义一个包含5个字节(8位)的数组
word_array dw 1, 2, 3, 4, 5 ; 定义一个包含5个字(16位)的数组
qword_array dq 1234567890123456789, 9876543210987654321 ; 定义四字数组
如果此时我们要定义一个未进行初始化的数据,则格式为:
数组名 命令 元素个数 dup(?)
此时要定义一个有20个字节元素的数组barray,则可以这样定义:
barray db 20 dup(?)
这个时候如果要手动对数组进行修改或者初始化则需要使用stos系列的指令;STOS 指令在 x86 汇编语言中用于将数据从累加器寄存器(AL、AX 或 EAX)存储到由目的地址寄存器(EDI)指示的内存位置。具体来说,STOS 指令有三个变体:STOSB、STOSW 和 STOSD,分别用于存储字节、字和双字数据。
数组数据填充
STOS系列操作步骤
-
存储数据:将
AL、AX或EAX的内容存储到由EDI指示的内存位置。 -
调整
EDI:根据方向标志(DF)调整EDI:
-
DF = 0(向前):
EDI递增(STOSB递增1字节,STOSW递增2字节,STOSD递增4字节)默认 -
DF = 1(向后):
EDI递减(STOSB递减1字节,STOSW递减2字节,STOSD递减4字节)
CLD:清除方向标志,使指针递增。 STD:设置方向标志,使指针递减。
此时我要对刚刚定义的barray数组/或者上面的byte_array等数组进行修改或者初始化,那么可以这样做(此处以barray为例子),该程序功能为将 barray 数组中的 20 个字节全部填充为 0xCC:
.586
.model flat,stdcall
option casemap:none
.data
byte_arr db 13,23,14,25 ;定义一个字节数组 byte_arr,包含 4 个字节
barray db 20 dup(?) ;定义一个未初始化的字节数组 barray,包含 20 个字节
.code
main procmov ecx,20mov al,0cchmov edi,offset barray rep stosb ;REP指令前缀用于重复执行紧随其后的字符串操作指令,直到寄存器 ECX 的值减为零。
main endp
end
.code代码段的代码解释:
-
mov ecx,20:将寄存器ECX设置为 20,表示需要重复执行接下来的指令 20 次。 -
mov al,0cch:将寄存器AL设置为0xCC(一个特殊值,通常用于填充内存以进行调试)。 -
mov edi,offset barray:将EDI寄存器设置为barray数组的地址。 -
rep stosb:将AL的值(0xCC)存储到EDI指示的内存位置,并将EDI增加1,然后将ECX减少1;重复此过程,直到ECX减为零,这将在barray数组的 20 个字节中全部填充0xCC。
未填充前:

填充后:数组对应的内存被填充未cc

相关文章:
汇编:数据定义数据填充
数组的定义 在32位汇编语言中,定义数组时,通常使用定义数据指令(如 DB, DW, DD,DQ )和标签来指定数组的名称和内容。DB定义字节数组(每个元素占1字节)、DW定义字数组(每个元素占2字节ÿ…...
Python画图(多图展示在一个平面)
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
python-web应用程序-Django数据库-操作表中的数据
python-web应用程序-Django数据库-操作表中的数据 一、新增数据 类.objects.create(字段名 字段值,字段名 字段值,...)导入models包 models.User.objects.create(nameyulin,sex0,info三好学生)即可对数据进行操作 二、删除数据 类.objects.filter(…...
绕过WAF(Web应用程序防火墙)--介绍、主要功能、部署模式、分类及注入绕过方式等
网站WAF是一款集网站内容安全防护、网站资源保护及网站流量保护功能为一体的服务器工具。功能涵盖了网马/木马扫描、防SQL注入、防盗链、防CC攻击、网站流量实时监控、网站CPU监控、下载线程保护、IP黑白名单管理、网页防篡改功能等模块。能够为用户提供实时的网站安全防护&…...
11.7 堆排序
目录 11.7 堆排序 11.7.1 算法流程 11.7.2 算法特性 11.7 堆排序 Tip 阅读本节前,请确保已学完“堆“章节。 堆排序(heap sort)是一种基于堆数据结构实现的高效排序算法。我们可以利用已经学过的“建堆操作”和“元素出堆操作”…...
Patchwork++:基于点云的快速、稳健的地面分割方法
1. 背景 论文发表在2022IROS,是Patchwork的改进版本。算法通过数学方法进行快速而鲁棒性很强的地面分割,在智能机器人上的可操作性非常强。通过微调算法,可以应用于16-beams等多种规格的激光雷达。由于激光雷达点云数据标注的难度非常大&…...
Llama改进之——分组查询注意力
引言 今天介绍LLAMA2模型引入的关于注意力的改进——分组查询注意力(Grouped-query attention,GQA)1。 Transformer中的多头注意力在解码阶段来说是一个性能瓶颈。多查询注意力2通过共享单个key和value头,同时不减少query头来提升性能。多查询注意力可能导致质量下…...
英伟达开源新利器NV-Embed向量模型,基于双向注意力的LLM嵌入模型,MTEB 56项任务排名第一
前言 文本嵌入模型能够将文本信息转化为稠密的向量表示,并在信息检索、语义相似度计算、文本分类等众多自然语言处理任务中发挥着关键作用。近年来,基于解码器的大型语言模型 (LLM) 开始在通用文本嵌入任务中超越传统的 BERT 或 T5 嵌入模型,…...
JVM之【GC-垃圾清除算法】
Java虚拟机(JVM)中的垃圾收集算法主要分为以下几种: 标记-清除算法(Mark-Sweep)复制算法(Copying)标记-整理算法(Mark-Compact)分代收集算法(Generational C…...
数据分析每周挑战——心衰患者特征数据集
这是一篇关于医学数据的数据分析,但是这个数据集数据不是很多。 背景描述 本数据集包含了多个与心力衰竭相关的特征,用于分析和预测患者心力衰竭发作的风险。数据集涵盖了从40岁到95岁不等年龄的患者群体,提供了广泛的生理和生活方式指标&a…...
单例模式(Java实现)
我的相关文章: JavaSE 学习记录-CSDN博客 多线程笔记-CSDN博客 单例模式(Java实现)-CSDN博客 JUC笔记-CSDN博客 注解与反射(Java,类加载机制,双亲委派机制)-CSDN博客 1. 懒汉式线程不安全 pu…...
24.面向对象六大原则
目录介绍 00.面向对象六大原则01.代码单一职责原则02.代码开放封闭原则03.代码里氏替换原则04.代码依赖倒置原则05.代码接口隔离原则06.代码迪米特原则00.面向对象六大原则 六大原则一句话介绍 单一职责原则:指一个类的功能要单一,不能包罗万象。开放封闭原则:指一个模块在扩…...
Vue3-shallowRef与shallowReactive
shallowRef 作用:创建一个响应式数据,但只对顶层属性进行响应式处理。 用法: let myVar shallowRef(initialValue);特点:只跟踪引用值的变化,不关心值内部的属性变化。 shallowReactive 作用:创建一个浅…...
CI/CD(基于ESP-IDF)
主要参考资料 B站乐鑫信息科技《【乐鑫全球开发者大会】DevCon23 #15 |通过 CI/CD 进行流水线开发》 pytest-embedded乐鑫文档: https://docs.espressif.com/projects/pytest-embedded/en/latest/api.html 目录 CI/CD简介乐鑫内部CI/CD测试GitLab CI/CDGitHub Actio…...
聚观早报 | 东风奕派eπ008将上市;苹果Vision Pro发布会
聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 6月3日消息 东风奕派eπ008将上市 苹果Vision Pro发布会 特斯拉Model 3高性能版开售 小米14推送全新澎湃OS系统 …...
k8s牛客面经篇
k8s的pod版块: k8s的网络版块: k8s的deployment版块: k8s的service版块: k8s的探针板块: k8s的控制调度板块: k8s的日志监控板块: k8s的流量转发板块: k8s的宏观版块:...
第9周 基于MinIO与OSS实现分布式与云存储
第9周 基于MinIO与OSS实现分布式与云存储 1. 基于mybatis-plus数据修改非空属性忽略更新2. 文件上传3. 分布式文件存储3.1 文件存储架构演变4. Minio docker安装5. 文件服务整合minio依赖minio API测试yml配置minio信息minio配置类业务:上传文件6. 云存储阿里OSS:要钱6.1 依赖6…...
【Linux内核-编程指南】
■ IPC组件 添加链接描述 ■ ■ ■ ■ ■...
Go 编程风格指南 - 最佳实践
Go 编程风格指南 - 最佳实践 原文:https://google.github.io/styleguide/go 概述 | 风格指南 | 风格决策 | 最佳实践 注意: 本文是 Google Go 风格 系列文档的一部分。本文档是 规范性(normative) 但不是强制规范(canonical),并且从属于Goo…...
awk的应用
步骤一:awk的基本用法 1)基本操作方法 格式1:awk [选项] [条件]{指令} 文件 格式2:前置指令 | awk [选项] [条件]{指令} 其中,print 是最常用的编辑指令;若有多条编辑指令,可用分号分隔。 …...
从魔兽团本到元宇宙:一个老玩家关于游戏终极形态的思考
前言这是一场跨越数日的对话。始于一位老玩家对当下游戏的困惑,终于一次关于宇宙递归的哲学探讨。如果你也曾怀念那个和兄弟一起通宵开荒的夜晚,如果你也对满屏的抽卡、648、限定池感到疲惫,如果你隐约觉得游戏不应该只是这样——那么这篇文章…...
LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal 题解
LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal 题解 题目描述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1&…...
综合能源系统多时间尺度优化调度!诸多创新点
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。👇 关注我领取海量matlab电子书和数学建模资料🍊个人信条:格物致知,完整Matl…...
2026年全场景适配最值得关注的五大能源管理系统
各位读者,大家好!在全球能源结构加速转型的当下,能源管理系统的发展至关重要。今天我要为大家介绍2026年全场景适配最值得关注的五大能源管理系统。这些系统对于企业提升能源管理的精细化、智能化水平,增强核心竞争力有着重要意义…...
【预测模型】基于VMD-SE-GRU+Transformer多变量时序预测 Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。👇 关注我领取海量matlab电子书和数学建模资料🍊个人信条:格物致知,完整Matl…...
Serpent 算法:从保守设计到硬件安全典范的深度剖析
1. Serpent 算法的前世今生 第一次听说 Serpent 算法是在2003年的一次密码学研讨会上。当时一位来自剑桥的工程师正在展示他的FPGA加密模块,提到这个算法时用了"固执的老古董"来形容——32轮加密的设计在当时看来简直匪夷所思。但正是这种"固执&quo…...
星光护航 家校同行 多方联合点亮4·2世界孤独症日公益之光
2026年4月2日第19个世界孤独症关注日来临之际,联合国官宣年度主题Autism and Humanity — Every Life Has Value(孤独症与人类 — 每一个生命都弥足珍贵),中国同步确定“提质全生涯服务供给,聚焦孤独症家庭支持与成年服…...
Claude Code 源码泄露,拿来改造 OpenClaw
一场意外的源码泄露,意外地给开源AI助手社区带来了一份珍贵的“研究素材”。Claude Code近51万行源码的暴露,正好可以为OpenClaw的下一阶段发展,提供一个明确的架构升级蓝图。核心功能:自动化定时任务 (Cron)两者都将“时间管理”…...
LLM - 2026 AI 文本转可视化工具终极指南:PicDoc.ai vs Napkin.ai 及 EdrawMax、Whimsical 等 8 大神器深度对比
文章目录概述一、PicDoc.ai vs Napkin.ai:专业全能 vs 轻快协作二、其他 6 大同类工具推荐三、8 大工具终极对比一览表(关键指标)四、 建议概述 在 2026 年的 AI 生产力浪潮中,把枯燥文字一键变成专业流程图、思维导图、信息图、…...
手把手教你拆解Coze‘城市觉醒’工作流:从提示词工程到插件调用的保姆级避坑指南
深度拆解Coze“城市觉醒”工作流:从提示词优化到插件调用的高阶实践 清晨五点的城市天际线逐渐亮起,高楼的轮廓在晨雾中若隐若现——这种充满电影感的画面,过去需要专业团队耗费数周时间拍摄剪辑。如今,借助Coze平台的工作流能力&…...
