汇编语言中

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

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. 傻妞教程——对接mongoDB使用返佣系统

    使用docker安装mongo 1.安装 1.1 拉取mongo镜像 docker pull mongo:4.4 1.2 创建mongo数据持久化目录 mkdir -p /docker_volume/ ...

  2. .net 8 C# 集成 AWS Cognito SMS/Email 注册与登录

    本文主要分为三个部分: 1.描述 cognito 涉及的专业术语 以及 交互流程 2..net 集成的代码 3.感想 * 阅读提示 :鼠标悬停在 章节标题 上可见 文章目录 1. Cognito 概念 ...

  3. 一款基于.NET开源、强大的网络管理和网络问题排查工具!

    前言 今天大姚给大家分享一款基于.NET开源.免费.功能强大的网络管理和网络问题排查工具:NETworkManager. 项目介绍 NETworkManager 是一个基于.NET开源(GPL-3.0 ...

  4. FastAPI依赖注入:参数共享与逻辑复用

    扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长 第一章:依赖注入核心原理 1.1 依赖树构建机制 from fastapi import Depends def auth_service ...

  5. 服务器Go程序意外停止自动重启

    判断进程是否挂掉 ps -ef | grep ./blog |wc -l 如果输出为1,说明进程挂掉了 如果输出为2,说明进程正常运行 编辑脚本来检测和完成重启 vim restart.sh 逻辑代码 ...

  6. NumPy学习11

    今天学习了NumPy线性代数 21, NumPy线性代数 numpy_test11.py : import numpy as np ''' 21, NumPy线性代数 NumPy 提供了 numpy. ...

  7. 容器一直处于Create状态

    通过命令排查 docker inspect b5be1d9e71de报错 "Error": "Could not attach to network fabric-tbc ...

  8. 团队小规模本地大模型服务平台搭建 - Windows

    实现目标和考虑因素 部署一个支持多用户同时使用.多模型运行的离线局域网大模型服务器 需要考虑以下几个关键因素: 大模型的加载和管理.使用一个基础大模型,根据需要创建多个专用模型,模型管理方便可靠. 并 ...

  9. [python] 使用Python实现Markdown文档格式转换

    本文主要介绍如何利用Python中的MarkItDown库将多种文件高效转换为Markdown文本,以及如何使用Python-Markdown库将Markdown文本转换为HTML(超文本标记语言)文 ...

  10. configparser.ConfigParser

    这是fens.conf里的初始内容: 下面是python3中configparser的处理原码:import configparsercf = configparser.ConfigParser()c ...