当前位置: 首页 > news >正文

汇编笔记 01

小蒟蒻的汇编自学笔记,如有错误,望不吝赐教

文章目录

    • 笔记
      • 编辑器,启动!
      • debug功能
      • CS & IP
      • mov
      • add
      • sub
      • 汇编语言寄存器的英文全称中英对照表
      • mul
      • div
      • and
      • or

笔记

编辑器,启动!

进入 debug 模式
在这里插入图片描述

debug功能

  1. 用Debug 的R命令查看、改变CPU寄存器的内容;
  2. 用Debug 的D命今查看内存中的内容;
  3. 用Debug 的E命令改写内存中的内容;
  4. 用Debug 的U命令将内存中的机器指令翻译成汇编指令;
  5. 用Debug 的T命令执行一条机器指令;
  6. 用Debug 的A命令以汇编指令的格式在内存中写入一条机器指令。

参考 手把手教你汇编 Debug

CS & IP

CS(Code Segment)是代码段寄存器,一般也被称为段基址,可以认为是程序访问的入口,CPU 需要从 CS 中找到从哪个位置开始取指执行
但是我们还不知道要取哪一段,这时候 IP 的作用就体现出来了
IP(Instruction Pointer)就是指令指针寄存器,也叫做偏移地址,它会告诉我们从段基址开始,取哪一段的地址。
可以使用 段基址:偏移地址 来确定内存中的指定地址。

mov

  1. mov dst, src mov 寄存器,寄存器
  2. mov dst, imm mov 寄存器,立即数
  3. mov dst(L/H), imm mov 寄存器(高八位/低八位),立即数
    把 src 移到 dst
    在这里插入图片描述

add

  1. add dst, imm
  2. add dst, src
  3. add dst(L/H), imm add 寄存器(高八位/低八位),立即数
    在这里插入图片描述
    在这里插入图片描述
    如果相加后溢出了,删溢出的高位(如果低八位加法溢出,也会删“溢出”高位,即使本可以放高八位去)
    不是所有寄存器都能用,亲测,第一行的都能用,第二行开头两个就不能用(后面的没试)

sub

和 add 类似
不够减,就在最高位前放1,再减

汇编语言寄存器的英文全称中英对照表

在这里插入图片描述

mul

  1. 两个相乘的数:两个相乘的数,要么都是8位,要么都是16位。
    1. 如果是8位,一个默认放在AL中,另一个放在8位reg或内存字节单元中;
    2. 如果是16位,一个默认在AX中,另一个放在16位reg或内存字单元中。
  2. 结果:
    1. 如果是8位乘法,结果默认放在AX中;
    2. 如果是16位乘法,结果高位默认在DX中存放,低位在AX中放。
      示例:10D * 100D
      10 和 100 都小于 256 满足(1)
      在这里插入图片描述
      示例:100D * 10000D
      10000 > 256
      10000D = 2710H
      在这里插入图片描述
      不会溢出
      在这里插入图片描述

div

  1. 除数: 有8位和16位两种,在一个reg或内存单元中。
  2. 被除数:
    1. 如果除数为8位,被除数则为16位,默认在AX中存放;
    2. 如果除数为16位,被除数则为32位,在DX和AX中存放,DX存放高16位,AX存放低16位。
  3. 结果:
    1. 如果除数为8位,则AL存储除法操作的商,AH存储除法操作的余数;
    2. 如果除数为16位,则AX存储除法操作的商,DX存储除法操作的余数。

小结:
(1): AX / BL = AL…AH
(2): DXAX / BX = AX…DX

and

逻辑与指令,按位进行与运算。
示例:

mov al,01100011B
and al,00111011B
执行后: 
al=00100011B

attention 在 debug 模式下,不能赋二进制数,先转成十六进制再赋
通过该指令可将操作对象的相应位设为0,其他位不变。例如:
将al的第6位设为0的指令是:
and al,10111111B

or

or指令:逻辑或指令,按位进行或运算。
示例:

mov al,01100011B
or al,00111011B
执行后: 
al=01111011B

相关文章:

汇编笔记 01

小蒟蒻的汇编自学笔记,如有错误,望不吝赐教 文章目录 笔记编辑器,启动!debug功能CS & IPmovaddsub汇编语言寄存器的英文全称中英对照表muldivandor 笔记 编辑器,启动! 进入 debug 模式 debug功能 …...

C语言:矩阵中的最小元素

题目描述 给定一个5X5的整数矩阵,找出其中最小的元素,输出所在的行号、列号和元素值,其中行号和列号都从0开始。 例如,有矩阵: 5 86 53 50 18 25 67 79 44 68 79 63 24 84 100 42 30 59 47 37 28 10 32 23 81 其中最小…...

【原创】MQTT开发笔记(四)- 压力测试

一、前言 Jmeter 是 apache 公司基于 java 开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简 单。因为 jmeter 是 java 开发的,所以运行的时候必须先要安装 …...

vue 引入 百度地图API 和 路书

公司项目中&#xff0c;偶尔都会涉及到地图的使用&#xff0c;这里以百度地图为例&#xff0c;我们梳理一下引用流程及注意点 账号和获取密钥 百度地图示例 百度地图 类参考 1、账号和获取密钥 // api.map.baidu.com/api?typewebgl&v3.0&ak您的密钥<script type…...

【QT+QGIS跨平台编译】之二十六:【SpatialIndex+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、SpatialIndex介绍二、文件下载三、文件分析四、pro文件五、编译实践一、SpatialIndex介绍 SpatialIndex是一个用于高效处理空间数据的C++库,基于R树索引结构实现。它提供了一系列的空间操作和查询算法,能够快速地对大规模空间数据进行检索和分析。 SpatialInd…...

SQL在云计算中的新角色:重新定义数据分析

文章目录 1. 云计算与数据分析的融合2. SQL在云计算中的新角色3. 分布式SQL查询引擎4. SQL-on-Hadoop解决方案5. SQL与其他数据分析工具的集成6. 实时数据分析与SQL7. SQL在云数据仓库中的角色8. 安全性与隐私保护9. SQL的未来展望《SQL数据分析实战&#xff08;第2版&#xff…...

云安全的基本概念(基本目标与指导方针)

目录 一、云安全概念概述 1.1 概述 二、云安全的基本目标 2.1 安全策略开发模型 2.1.1 信息安全三元组 2.1.1.1 保密性(Confidentiality) 2.1.1.2 完整性(Integrity) 2.1.1.3 可用性(Availability) 2.1.2 信息安全三元组的局限性 2.2 其他信息安全属性 2.2.1 真实性 …...

猫头虎分享已解决Bug || docker: Error response from daemon: network not found

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …...

《幻兽帕鲁》攻略:0基础入门及游戏基础操作 幻兽帕鲁基础设施 幻兽帕鲁基础攻击力 Mac苹果电脑玩幻兽帕鲁 幻兽帕鲁加班加点

今天就跟大家聊聊《幻兽帕鲁》攻略&#xff1a;0基础入门及游戏基础操作。 如果想在苹果电脑玩《幻兽帕鲁》记得安装CrossOver哦。 以下纯干货&#xff1a; CrossOver正版安装包&#xff08;免费试用&#xff09;&#xff1a;https://souurl.cn/Y1gDao 一、基础操作 二、界面…...

JDK版本如何在IDEA中切换

JDK版本在IDEA中切换 一、项目结构设置 1.Platform——Settings 项目结构---SDKS 2.Project——SDK 3.Modules——SDK——Sources 4.Modules——SDK——Dependencies 二、设置--编译--字节码版本 Settings——Build,——Java Compiler...

如何做零售企业满意度调查

零售业满意度调研是一项至关重要的市场研究工作&#xff0c;它能够帮助企业深入了解消费者对零售店的整体印象、商品质量、服务质量等方面的评价。这种评价可以帮助企业了解自身的优势和不足&#xff0c;提高企业的市场竞争力。民安智库&#xff08;第三方市场调研公司&#xf…...

platform tree架构下i2c应用实例(HS3003)

目录 概述 1 探究platform tree下的i2c 1.1 platform tree下的i2c驱动 1.2 查看i2c总线下的设备 1.3 使用命令读写设备寄存器 2 认识HS3003 2.1 HS3003特性 2.2 HS3003寄存器 2.2.1 温湿度数据寄存器 2.2.2 参数寄存器 2.2.3 一个参数配置Demo 2.3 温湿度值转换 2.…...

Mongodb聚合:$planCacheStats

执行查询时&#xff0c;MongoDB 查询规划器会根据可用索引选择并缓存效率最高的查询计划。$planCache可以返回所有集合的查询计划缓存信息。要使用$planCache&#xff0c;必须把$planCacheStats阶段放在管道最前面。 语法 { $planCacheStats: { } }使用 $planCacheStats必须…...

8个简约精美的WordPress外贸网站主题模板

Simplify WordPress外贸网站模板 Simplify WordPress外贸网站模板&#xff0c;简洁实用的外贸公司wordpress外贸建站模板。 查看演示 Invisible Trade WP外贸网站模板 WordPress Invisible Trade外贸网站模板&#xff0c;做进出口贸易公司官网的wordpress网站模板。 查看演…...

本地缓存Ehcache的应用实践 | 京东云技术团队

java本地缓存包含多个框架&#xff0c;其中常用的包括&#xff1a;Caffeine、Guava Cache和Ehcache&#xff0c; 其中Caffeine号称本地缓存之王&#xff0c;也是近年来被众多程序员推崇的缓存框架&#xff0c;同时也是SpringBoot内置的本地缓存实现。但是除了Caffeine之外&…...

linux一键换源

使用方法 - LinuxMirrors 使用方法 一键执行命令# 中国大陆&#xff08;默认&#xff09; 海外地区 bash <(curl -sSL https://linuxmirrors.cn/main.sh)-----------------------------------| ⡇ ⠄ ⣀⡀ ⡀⢀ ⡀⢀ ⡷⢾ ⠄ ⡀⣀ ⡀⣀ ⢀⡀ ⡀⣀ ⢀⣀ || ⠧⠤ ⠇ ⠇⠸ …...

Python Scapy库实现ARP扫描和ARP欺骗

ARP扫描&#xff1a;检测指定IP网段中哪些主机是在线的&#xff0c;并获取它们的MAC地址 from scapy.all import * import argparse import threading import time import logging # 解析CIDR格式的网段&#xff0c;并返回IP地址列表 # >接受一个CIDR格式的网段…...

Fink CDC数据同步(六)数据入湖Hudi

数据入湖Hudi Apache Hudi(简称&#xff1a;Hudi)使得您能在hadoop兼容的存储之上存储大量数据&#xff0c;同时它还提供两种原语&#xff0c;使得除了经典的批处理之外&#xff0c;还可以在数据湖上进行流处理。这两种原语分别是&#xff1a; Update/Delete记录&#xff1a;H…...

线程和进程的区别及基础线程创建

1 线程和进程的区别 资源分配和调度&#xff1a; 进程&#xff08;火车&#xff09;是操作系统进行资源分配和调度的最小单位。它有自己的独立资源空间&#xff0c;包括内存、文件句柄等。线程&#xff08;车厢&#xff09;是CPU调度的最小单位。一个进程可以包含多个线程&…...

如何使用postman进行接口调试

使用Postman进行接口调试 有些时候我们写代码的时候&#xff0c;会发现接口有报错&#xff0c;提示参数错误&#xff0c;我们为了更好的排查错误原因&#xff0c;可以在Postman上进行接口调试。将url&#xff0c;请求方式&#xff0c;参数&#xff0c;cookie都填写到Postman中…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...