汇编语言中

  • 语句不区分大小写,编译软件会自动识别语句
  • 用户自定义的变量和符号必须区分大小写。

8086

1.寄存器

cpu在访问存储器时,必须指明:

  • 段寄存器:所访问的存储单元属于哪个段
  • 偏移量:相应存储单元与段起始地址(段基址)的距离

notes : 在程序设计中,可以把一个程序划分为任意个存储段。但只要在程序运行时,最多只有四个段,它们分别由CS,DS,ES和SS指定因为我们只有四个段寄存器呀ヾ(๑╹◡╹)ノ"

IP(指令指针)的内容不能直接被访问,不能直接用指令去读IP的值,也不能用指令为其赋值。但可通过某些指令的执行去修改IP的内容

2.存储器

存储器由若干个存储单元构成

存储单元的多少就表示存储器的容量大小

每个存储单元存放相同长度的二进制数

一个存储单元的长度一般为八位二进制数,即一个字节

每个存储单元有一个唯一的编号——地址

8086有二十根地址线,即它的存储器寻址能力为2^20,即一兆字节空间

任何两个相邻字节单元就构成一个字单元٩(๑❛ᴗ❛๑)

两者遵循低对低,高对高

寻址方式

一条指令由操作码和操作数构成

  • 操作码:该指令应完成的具体操作。在汇编语言中使用特定的符号来表示,称为助记符。eg:MOV,PUSH,ADD等
  • 操作数:该指令的操作对象。eg:加法操作里的加数

寻址方式:寻找指令中所需操作数的各种方法,即提供指令中操作数的存放信息的方式

指令系统:计算机所能执行的各种类型的指令集合

notes:目的数只能做源操作数,不能传送给段寄存器

无操作数指令

  • 指令不需要操作数,eg:暂停指令HLT
  • 在指令格式中,没有显示地指明操作数,但是隐含了操作数的存放地方,eg:指令PUSHF

notes:段寄存器CS只能做源操作数,不能做目的操作数

eg:MOV AX,CS
MOV CS,AX ✘
CS中存储的可是指令啊,所以不能轻易被改变~

notes :寄存器与存储单元的区分: [ ] 包括的为存储单元

notes:存储单元之间不能直接传送数据

notes:MOV指令不影响标志位

指令编码

  • 一个存储单元逻辑地址表示方式 段基址:偏移量

    • 段基址由某个段寄存器提供
    • 偏移量表示该存储单元与段起始地址之间的距离,!也就是我们所说的有效地址EA
      • 有效地址EA是位移量,基址,变值三个地址分量的组合结果,有CPU的执行单元EU计算出来

        • 位移量:指令中直接给出的一个8位或16位数。一般源程序中以操作数名字(变量名或标号)的形式出现
        • 基址:由基址寄存器BX或基址指针BP提供的内容
        • 变址:由源变址寄存器SI或目的变址寄存器DI提供的内容

汇编语言笔记——8086&&寻址方式与指令系统的更多相关文章

  1. 汇编语言笔记v1.0

    1.loop的用法 loop指令的格式是:loop标号,cpu执行loop指令的时候,要进行两步操作 1:(cx)=(cx)-1 2:判断cx中的值,不为零则转至标号处执行,如果为零,则向下执行 这里 ...

  2. 汇编语言笔记 CALL和RET指令

    转载地址:http://www.cnblogs.com/dennisOne ☞模块化程序设计 模块化程序设计 汇编语言通过call和ret指令实现了模块化程序设计.可以实现多个相互联系.功能独立的子程 ...

  3. 2017.11.12 web中JDBC 方式访问数据库的技术

    JavaWeb------ 第四章 JDBC数据库访问技术 在JavaWeb应用程序中数据库访问是通过Java数据库连接(JavaDateBase Connectivity简称JDBC)数据库的链接一 ...

  4. Linux内存寻址

    我会尽力以最简洁清晰的思路来写这篇文章. 所谓内存寻址也就是从写在指令里的地址,转化为实际物理地址的过程.因为操作系统要兼顾许多东西,所以也就变得复杂. 逻辑地址 → 线性地址 → 物理地址 逻辑地址 ...

  5. Exynos 4412 Uboot源码解析

    原文地址:http://www.cnblogs.com/jacklu/p/6226330.html Exynos 4412 Uboot的汇编代码就不贴了,没有的可以私信我. 这是我当时阅读代码时的思维 ...

  6. 7.11.3 Java简介

    101Java简介 101Java简介及开发环境搭建 Java简介 编程语言简介 机器语言:纯粹的机器代码 机器语言是有0,1,0,1的二进制代码组成,可以有计算机直接执行.效率最高,但是通用性不强, ...

  7. x86汇编

    ● 实模式下32bit处理器,与8086兼容,例如loop 指令结束标志,只判断cx,而不是ecx ● IO端口 实际上是一些寄存器,在IO接口当中.向外设读写数据,要通过读写IO端口来实现. 有些计 ...

  8. iOS汇编系列-汇编入门

    概述 汇编语言(Assembly Language)用符号代替了0和1,比机器语言更便于阅读和记忆. 但是同样汇编语言同样指令太多不便于记忆,就出现了高级语言.C\C++\Java\Swift等,更接 ...

  9. XCode汇编调试

    开启Xcode汇编调试 选中Always Show Disassembly项. XCode -> Debug -> Debug Workflow -> Always Show Dis ...

  10. 8086中断系统——《x86汇编语言:从实模式到保护模式》读书笔记04

    80X86中断系统 能够处理256个中断 用中断向量号0-255区别 可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理 1.中断的分类 中断可以分为内部中断和外部中断. (1)内 ...

随机推荐

  1. PPT图片搭配

  2. pandas 操作excel

    一 Series 什么是series 相当于表格中的行和列,不同的设置可以按行或列排序 2.series 创建 空的series import pandas as pd s2=pd.Series() ...

  3. [I.2]个人作业:软件案例分析

    项目 内容 这个作业属于哪个课程 2025春季软件工程(罗杰.任健) 这个作业的要求在哪里 [I.2]个人作业:软件案例分析 我在这个课程的目标是 在PSP中精进个人代码技术,在TSP中提高团队合作凝 ...

  4. Go语言遍历字符串——获取每一个字符串元素

    遍历字符串有下面两种写法. 遍历每一个ASCII字符 遍历 ASCII 字符使用 for 的数值循环进行遍历,直接取每个字符串的下标获取 ASCII 字符,如下面的例子所示. theme := &qu ...

  5. centos7 挂载未分配的硬盘空间 (测试可用)

    =============================================== 2019/7/28_第1次修改                       ccb_warlock == ...

  6. Radmin远程自动登入管理工具

    功能说明: Radmin远程自动登入管理工具,服务器登入密码采用加密方式存储,软件可添加,编辑,删除服务器列表以及扫描服务器是否在线. 连接方式:有完全控制,仅查看,文件传输,关机等功能. 使用说明: ...

  7. BUUCTF---萌萌哒的八戒(猪圈密码)

    1. 问题 2.知识点 猪圈密码 3.解题 对应解题,套上flag{whenthepigwanttoeat}

  8. 【SpringMVC】处理 JSON:使用 HttpMessageConverter

    处理 JSON:使用 HttpMessageConverter 处理 JSON 加入 jar 包: 编写目标方法,使其返回 JSON 对应的对象或集合 在方法上添加 @ResponseBody 注解 ...

  9. 【虚拟机】在VMware中为Ubuntu虚拟机设置共享文件夹

    [虚拟机]在VMware中为Ubuntu虚拟机设置共享文件夹 零.需求 有些开发工具在Windows上没有,只能在Ubuntu上开发,但是自己电脑是Windows的,开发完成后需要通过Windows分 ...

  10. 【Ubuntu】安装Eclipse

    [Ubuntu]安装Eclipse 零.前言 Eclipse是一个使用很广泛的代码编辑软件,最近换了Ubuntu系统,需要安装一下,故记录. 壹.下载 Eclipse到官网下载,或者到镜像源下载,官网 ...