汇编语言(王爽)第四版学习1

2023-10-28

第一章

机器语言:0,1
简单语句:mov ax,bx
汇编语言组成:
(1)汇编指令:机器码的助记符,有对应的机器码
(2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行
(3)其他符号:如+、 -、*、/等,由编译器识别,没有对应的机器码
存储器:
内存
指令和数据:
指令和数据是应用上的概念,CPU工作时有点信息看作指令,有的信息看作数据
1000100111011000–>89D8H(数据)
100010011011000–>move ax,bx(程序/指令)
存储单元:最小单位:bit 8bit=1Byte=1个存储单元
1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
CPU对数据的读写:存储单元 编号看作地址
CPU数据读写:必须与芯片进行3类信息交互
(1)存储单元的地址(地址信息)
(2)器件的选择,读或写的命令(控制信息)
(3)读或写的数据(数据信息)
CPU与其他芯片的导线,通常称为总线,从物理上讲是一根导线的集合
逻辑上分三类;地址总线,控制总线,数据总线
CPU完成读写工作
机器码:10100001 00000011 00000000
对应的汇编指令:mov ax,[3]
含义;传递3号单元的内容入ax
地址总线:10根导线可以传送10位二进制数据,可表示210个不同数据,即0~1023,一个CPU有N根地址线,可说CPU地址总线宽度为N,最多可以寻找2N个内存单元
8088CPU数据总线宽度8,8086CPU数据总线宽度16
数据总线(内存读写命令)
一些不同控制线的集合,线数代表对外部器件的控制数
控制总线的宽度觉电力CPU对外部器件的控制能力
控制线中其中一根称为“读信号输出”另一根“写信号输出”,分别控制内存的读写
小节:
(1)汇编指令是指机器指令的助记符,同机器一一对应
(2)每一种CPU都有自己的汇编指令集
(3)CPU可以直接使用的信息在储存器中存放
(4)在储存器中指令和诗句没有区别,都是二进制信息
(5)储存单元从零开始顺序编号
(6)一个储存单元可以储存8个bit,即8位二进制数
(7)1Byte=8bit 1KB=1024B 1MB=1024KB
(8)每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出了总线。一个CPU可以引出三种总线的宽度标志着CPU不同方面的性能

  • 地址总线的宽度决定了CPU的寻址能力
  • 数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量
  • 控制总线的宽度决定了CPU对系统中其他期间的控制能力

内存地址空间(概述)
例:CPU总线宽10,可寻址1024个内存单元,这1024个工程这个CPU的内存地址空间
主板:主板上连接一些器件,由CPU总线连接(地址、数据、控制总线)
CPU存储器、外围芯片组、扩展槽(RXAM内存条和各类接口)
接口卡:CPU虽控制一切,但对对外部设备不能直接控制;显示器、音响、打印机用到的是扩展插槽上的接口,接口卡同CPU相连接,可被CPU直接控制。
CPU–总线–>接口卡–>外设
各类存储芯片:
读写性分类:随机存储器(RAM):可读可写关机后内容丢失,须带电存储
只读存储器(ROM):可读不可写,内容不丢失
功能和连接上分类:
随机存储器:用于存放供CPU使用的绝大部分程序和数据
主随机存储器一般由2个位置上的RMA组成
主板上的RMA和扩展插槽上的RMA(俗称的内存条)
装有BIOS(Basic Input/Output System 基本输入/输出系统)的ROM,BOIOS由主板和各类接口卡(显卡、网卡)操场上提供的软件系统,由它利硬件输入输出。主板某些接口卡上插有存储相应BIOS的ROM,主板上ROM存储着主板的RIOM(系统BIOS)
接口卡上的RAM:某些接口卡需要大批量输入输出,进行暂时存储,在其上装有RAM。典型的显卡上的RAM,即显存。显卡随时将显存中数据输出至显示器(显存有东西,显示器就有东西)

在这里插入图片描述

内存地址空间

上述存储器,物理上是独立的,但都是和CPU的总线相连,CPU对它们进行读写是都通过控制线发出内存读写命令。对CPU而言,也就是从逻辑上讲,所有的分开的存储器相当于一个存储器,也就是逻辑存储器,这个逻辑存储器就叫内存地址空间。
在这里插入图片描述
最终运行程序的是CPU,我们用汇编语言编程时,必须从CPU角度考虑问题,对CPU来讲,系统中所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

汇编语言(王爽)第四版学习1 的相关文章

  • ctf中pwn题目总结

    pwntools工具使用 1 安装 pip install pwntools xff08 python2 xff09 pip3 install pwntools xff08 python3 xff09 2 使用 Context设置 cont
  • 记一次PWN机(Vmware和Docker+VNC)的搭建

    基于Vmware搭建虚拟机 学长已经提供了镜像 xff0c 在Vmware界面打开那个镜像 xff0c 开机即可 Vmware和镜像下载地址 xff1a 链接 xff1a https pan quark cn s 057a23e631f5
  • pwnable.tw - orw

    简单概览 与 start 不同 该程序使用动态链接 提示仅允许有限的系统调用 open read write 函数 程序运行 哪怕是输入一个字母 程序仍然会出现段错误 检查安全措施 可见栈上开了 CANARY 程序 在 IDA 中反编译可见
  • 攻防世界-pwn when_did_you_born(栈覆盖)

    0x01 拿到文件之后 先检查文件的基本信息 文件信息 64bit elf可执行文件 无PIE保护 0x02 执行文件 文件之中有两个输入 第一个输入有回显 0x03 IDA静态分析 可以看出获取flag需要用到v5的值 首先需要v5不等于
  • 2021第十四届全国大学生信息安全竞赛WP(CISCN)-- pwn部分

    CISCN 2021 WP 概述 ciscn 2021 lonelywolf ciscn 2021 pwny 第一种利用方式 第二种利用方式 ciscn 2021 silverwolf ciscn 2021 game 总结 概述 作为学习不
  • 攻防世界 pwn forgot

    下面记录一下我在做攻防世界的pwn练习题中的forgot题目的过程 这个题目现在还是有些疑惑的 首先我们看一下题目的安全机制 然后IDA看一下主函数 int cdecl main size t v0 ebx char v2 32 esp 1
  • xman 厦门邀请赛 pwn1 babystack writeup

    题目描述 这个题目针对现在的我还是有点难度的 花费了我三天的时间 最后发现原因竟是因为字符转化为整型的过程中多加了好多0 分析思路 1 首先查看文件的详细信息 tucker ubuntu xman pwn pwn1 file babysta
  • [OGeek2019]babyrop

    OGeek2019 babyrop 查看程序的保护机制 发现是got表不可写的32位程序 拖进ida查看伪代码 sub 80486BB是初始化缓存区的函数 发现buf是一个随机数 发现函数中存在strncmp比较函数 其中buf为用户输入的
  • 1.pwn基础总结

    基本概念 exploit 用于攻击的脚本与方案 通常缩写为exp payload 攻击载荷 是的目标进程被劫持控制流的数据 shellcode 调用攻击目标的shell的代码 打开目标的shell 获取目标控制权 pwn解题基本流程 che
  • CTFshow-pwn入门-栈溢出pwn49(静态链接pwn-mprotect函数的应用)

    pwn49 首先我们先将pwn文件下载下来 然后赋上可执行权限 再来查看pwn文件的保护信息 chomd x pwn checksec pwn file pwn 我们可以看到这是一个32位的pwn文件 并且保护信息开启了NX和canary
  • 软件与系统安全复习

    软件与系统安全复习 课程复习内容 其中 软件与系统安全基础 威胁模型 对于影响系统安全的所有信息的结构化表示 本质上 是从安全的视角解读系统与其环境 用于理解攻击者 什么可信 什么不可信 攻击者的动机 资源 能力 攻击造成的影响 具体场景
  • 二进制安全虚拟机Protostar靶场(3)溢出控制程序指针,基础知识讲解 Stack Three,Stack Four

    前言 这是一个系列文章 之前已经介绍过一些二进制安全的基础知识 这里就不过多重复提及 不熟悉的同学可以去看看我之前写的文章 二进制安全虚拟机Protostar靶场 安装 基础知识讲解 破解STACK ZERO https blog csdn
  • ADworld_level_2

    以下是adworld里endust师傅的wp checksec扫描 使用ida打开可以发现 初始的buf的空间只有0x88 但是读取我们输入的内容的时候 选择的大小却是0x100 造成了溢出 通过这些 我们直接构建exp from pwn
  • 二进制安全虚拟机Protostar靶场(2)基础知识讲解,栈溢出覆盖变量 Stack One,Stack Two

    前言 Protostar靶场的安装和一些二进制安全的基础介绍在前文已经介绍过了 这里是文章链接 https blog csdn net qq 45894840 article details 129490504 spm 1001 2014
  • bukku ctf(刷题2)

    bugku ctf 抄错的字符 简单取证1 这是一张单纯的图片 计算器 GET POST 矛盾 alert 你必须让他停下 signin Easy Re 游戏过关 Easy vb 树木的小秘密 Timer 阿里CTF 抄错的字符 Crypt
  • pwn手记录题2

    fastbin reverse into tcache 2 34 本题所使用的libc版本为2 34 最新版 libc2 34版本已经没有了所谓的hook函数 甚至exit hook 实际为某个函数指针 也已经不能够使用 能够利用的手法已经
  • 安卓pwn - De1taCTF(BroadcastTest)

    BroadcastTest 背景 逆向APK可知程序中仅有MainActivity Message和三个Receiver类 前者实现了一个Parcelable类 后三个则是广播 其中Receiver1是exported的 接收并向Recei
  • 再探ROP(下)

    文章目录 0x01 概述 0x02 ret2reg 2 1 起因 2 2 原理 0x03 brop详解 3 1 概述 3 2 逆向思维切入 1 搭建环境 2 溢出长度和爆破canary 3 如何getshell 4 寻找直接条件 5 寻找间
  • pwn 做题记录 2.8 adworld hello_pwn

    2022 2 8 今天其实没有起的很早 中午去玩3d打印机又花了很多时间 但是还是有一点点进展 首先解决了pwndbg的问题 其实别的blog本来说的就很清楚 找到gdbinit这个文件之后自己编辑就行了 但是之前操作的时候没有按照vim的
  • 攻防世界 pwn cgfsb writeup

    攻防世界pwn cgfsb 这一题是关于格式化字符串漏洞的题 是一个单一漏洞题 不需要太多的绕过 拿到题目首先查看一下保护 可以看到 这是一个32位的程序 并且开启了Canary保护和NX保护 我们看一下IDA 进入IDA 按下F5可以得到

随机推荐

  • C语言中符号表示什么意思?

    C语言中 gt gt lt lt 分别表示什么意思 举例说明 1 C语言中的 gt gt 意思为 右移后赋值 代码示例为 x 8 x gt gt 3 右移后结果为 00000000 00000000 00000000 00000001 2
  • OPenCV入门学习笔记(5)人脸检测

    检测的一般步骤 加载xml级联分类器 读入图片 灰度化处理图片 进行检测 加载xml级联分类器 face detector cv2 CascadeClassifier haarcascade frontalface default xml
  • 2023华为OD机试真题-狼羊过河(JAVA、Python、C++)

    题目描述 一农夫带着m只羊 n只狼过河 农夫有一条可载x只狼 羊的船 农夫在时或者羊的数量大于狼时 狼不会攻击羊 农夫在不损失羊的情况下 运输几次可以完成运输 返程不计入次数 输入描述 输入参数为 m n x m 为羊的数量 n为狼的数量
  • 乐高ev3编程 c语言,乐高ev3编程软件下载-乐高EV3机器人编程软件lego mindstorms ev31.0 官方版 - 极光下载站...

    LEGO MINDSTORMS EV3是乐高EV3机器人编程软件 乐高ev3编程软件是乐高头脑风暴EV3机器人配套的编程软件 包含多个有趣的机器人编程任务 拥有简单易用的编程界面 让您您轻松探索并操纵乐高EV3机器人 让机器人服从您的命令
  • 51单片机(硬件结构)并行I/O端口

    I O端口结构及功能 1 MCS 51单片机有4个8位并行I O端口 P0 P1 P2 P3 2 每个口包含 锁存器 输出驱动器 输入缓存器 3 具有字节寻址和位寻址功能 4 在访问片外扩展存储器时 低8位地址和数据由P0口 分时传送 高8
  • DDR3总结笔记

    注 学习 交流就在博主的个人weixin公众号 FPGA动力联盟 留言或直接 博主weixin fpga start 私信 完整的参考工程源码在某宝有售 https item taobao com item htm ft t id 6832
  • JAVA形参可变数量参数

    public class test public void info int nums for int num nums System out println num public static void main String args
  • linux /etc/profile bashrc bash_profile

    文件 etc profile bashrc 和 bash profile 的使用区别 etc profile 全局 环境变量等 在机器重启后执行一次 用于设置环境变量 更改一些内核参数等命令 etc bashrc 全局登陆 变量 如 ali
  • 为Android添加HAL模块

    1 每个硬件抽象层模块在内核中都对应一个驱动程序 硬件抽象层模块就时通过这些驱动程序来访问硬件设备的 它们是通过读写设备文件来进行通信的 硬件抽象层中的模块接口源文件一般保存在hardware libhardware目录中 为了方便起见 我
  • 关于exe文件无法执行的解决方式小结

    昨天学习时候用到Apache 下载安装之后 用对应的exe文件无法打开 服务器一直打不开 我就好奇怎么样才能解决这个问题 先在网上百度了一些方法 通过修改注册表方式 步骤如下 新建记事本 将下面这段代码保存进去 然后另存为将其修改为恢复可执
  • ovs tag

    ovs tag 下发正常转发流表 sh ovs ofctl add flow s1 action normal action NORMAL的流表意思是该交换机配置成一个正常传统交换机工作 ovs交换机有两种工作模式 SDN模式和传统模式 传
  • python assert用法

    1 assert语句用来声明某个条件是真的 2 如果你非常确信某个你使用的列表中至少有一个元素 而你想要检验这一点 并且在它非真的时候引发一个错误 那么assert语句是应用在这种情形下的理想语句 3 当assert语句失败的时候 会引发一
  • Qt学习笔记——界面文件的使用

    一 界面文件的使用 1 独立的ui文件 使用uic命令把ui文件编译成 h文件 uic xxx ui o xxx h 2 在集成开发环境中使用 1 Qt构造器会把xxx ui文件生成 ui xxx h 文件 且会有一个xxx h xxx c
  • (转载)STM32与LAN9252构建EtherCAT从站

    目录 一 项目简介 EtherCAT及项目简述 LAN9252工作模式 整体开发流程 移植要处理的问题 代码层面的工作 开发中使用的工具 二 SSC的使用 SSC简介和下载 SSC构建协议栈文件和XML 三 LAN9252的XML文件 Et
  • postgresql常用函数>序列函数nextval():设置主键自动增长

    主键一般设置为Integer类型 并且自动增长 起始值为1 增量为1 有两种方法 法一 在建表时 nextval 表名 主键 seq regclass 法二 如果表已经建好 CREATE SEQUENCE 表名 主键 seq START W
  • anaconda jupyter-notebook

    文章目录 仓库镜像配置 新建python 环境 jupyter notebook 仓库镜像配置 conda config add channels https mirrors tuna tsinghua edu cn anaconda pk
  • 程序员必备的25个好网站汇总

    一 技术提升 0 GitHub 程序员托管代码的平台 很多开发者都会在上面找各种各样的开源项目来学习 阿里 腾讯 字节跳动 美团 Google Micosoft等国内外大厂都有自己的Github开源库 1 StackOverflow 一个强
  • 蓝桥杯单片机学习日记4-串口接收与发送,解决串口引脚与按键引脚冲突

    此片文章用于记录蓝桥杯单片机的学习 串口的发送与接收较为简单 主要是字节和字符串的发送与接收 直接上程序 串口初始化 void UartInit void 9600bps 11 0592MHz SCON 0x50 8位数据 可变波特率 AU
  • MySQL数据库是非关系_MySQL(数据库)基础知识、关系型数据库yu非关系型数据库、连接认证...

    什么是数据库 数据库 Database 存储数据的仓库 高效地存储和处理数据的介质 介质主要是两种 磁盘和内存 数据库系统 DBS Database System 是一种虚拟系统 将多种内容关联起来的称呼 DBS DBMS DB DBMS
  • 汇编语言(王爽)第四版学习1

    第一章 机器语言 0 1 简单语句 mov ax bx 汇编语言组成 1 汇编指令 机器码的助记符 有对应的机器码 2 伪指令 没有对应的机器码 由编译器执行 计算机并不执行 3 其他符号 如 等 由编译器识别 没有对应的机器码 存储器 内