汇编学习

地址总线

  地址总线宽度决定访问内存的大小 例如8086架构可以有20 个地址总线 一个地址总线为2个字节 2个2位的16进制  可以访问的最大内存我2^20 也就是1m  最大可以装在内存为1mb

数据总线

  数据总线决定数据吞吐量 8086 的数据总线为16  每次数据吞吐量也就是2个字节 如果一个1kb 的数据想要读取 那就是说要读取512次 才能读取完  cpu 的位数 也是根据数据总线来确定的

控制总线

  用来执行控制命令的发送和接受 其本质也是操作数据

内存  分为 ram 和 rom

  RAM

  为主内存 为地位内存  比较安全的内存 写的程序 主要执行在 RAM 中

  可以读写

  ROM

  一般为BIOS 系统内存  显存  网卡

  只读(系统内存)

  显存和网卡(可以读写)

寄存器

  cpu 分为三部分 运算器 控制器和寄存器

  寄存器是程序员用来操作寄存器的内容来改变对 CPU 的控制;

  8086 16位寄存器

  可以存放两个字节

AH - AL
AX

数据寄存器
BH - BL
BX

CH - CL
CX

DH - DL
DX


SP


堆栈指针

指针寄存器

BP


基数指针


SI


源变址

变址寄存器

DI


目的变址


IP


指令指针

控制寄存器

FLAG


状态标志


CS


代码段

段寄存器

DS


数据段


SS


堆栈段


ES


附加段

时间: 2024-11-15 06:56:09

汇编学习的相关文章

基于8086CPU微处理器的汇编学习之MOV指令

汇编指令:MOV的作用是往某个寄存器中存入数值. 格式:mov  寄存器名,数值                数值-->寄存器 mov  寄存器A,存器寄B          B-->A PS:必须前后位数匹配,如: mov   ah,bx     ;error   ah is 8 bit,bx is 16 bit mov   ah, bh    ;right    ah and bh all is 8  bit mov   cx,dx     ;right     cx and dx al

基于8086CPU微处理器的汇编学习之ADD指令

ADD指令: 把两个数值相加,将结果放到第一个寄存器里面. 格式: ADD  寄存器名,数值 ADD  寄存器名,寄存器名 add ax,11 add bx,22 PS:清空数据: mov ax,0000 两者数值的存储容量位数要匹配 ----------------------------------------------------------------------------------------------- 用汇编语言编写一个小程序:1122H + 9000H +   AC02H

AT&T汇编学习笔记

AT&T汇编和intel汇编的区别 (1)在Intel格式中大多使用大写字母,而在AT&T格式中都是用小写字母. (2)在AT&T格式中,寄存器名要加上"%"作为前缀,而在intel格式中则不带前缀. (3)在AT&T的386汇编语言中,指令的源操作数与目标操作数的顺序与在intel的386汇编语言中正好相反.在intel格式中是目标在前,源在后:而在AT&T格式中则是源在前,目标在后.例如,将寄存器eax的内容送入ebx,在intel格式中为&

8086汇编学习小结———实时更新

初学IBM-PC 8086,对INT指令不是很理解.现从网上总计如下: 表:DOS系统功能调INT 21H AH 功能 调用参数 返回参数 00 程序终止(同INT 20H) CS=程序段前缀 01 键盘输入并回显 AL=输入字符 02 显示输出 DL=输出字符 03 异步通迅输入 AL=输入数据 04 异步通迅输出 DL=输出数据 05 打印机输出 DL=输出字符 06 直接控制台I/O DL=FF(输入)DL=字符(输出) AL=输入字符 07 键盘输入(无回显) AL=输入字符 08 键盘

汇编学习笔记-序章

最近突然对汇编语言开始感兴趣,于是说干就干了. 之前也自学过一点汇编,是跟着王爽老师的<汇编语言(第3版) >这本书学习的,已经是有5 6前年的样子了.当时觉得这本书写的非常通俗易懂是一本非常好的启蒙书籍,但是最近在翻阅的时候却觉得这本书知识点介绍的非常杂乱没有个章程,感觉像是没组织过一样想到哪里写到哪里.哈哈,个人愚见,王爽老师的粉丝不要喷我. 于是乎我去各种百度汇编学习的书籍推荐,在知乎.csdn找到了好几本推荐的书,然后就一股脑买了4本.所以我简单的根据书名排了个阅读顺序: 80x86汇

AT&T汇编学习笔记(一)

file命令使用介绍 file最常用的场景就是用来查看可执行文件的运行环境,是arm呢,还是x86呢,还是mips呢?一看便知 $ file a.out a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xa240b1958136fc294a6ee5833de2a0fc8c9e

汇编学习环境搭建

一 系统环境 win10 pro x86 masm 5.0 下载地址:http://download.pchome.net/development/linetools/detail-9028.html 二 编译环境搭建 1 将masm 5.0 下载下来,这个是免安装版的, 解压缩, 将MASM.EXE所在的目录添加到环境变量path里面. 2 使用方法 <1> 在cmd窗口(注意这个cmd跟下面的command不是一个东西)输入"masm 汇编源码文件;", 回车, 如果编

Android ARM 汇编学习(一)

给自己挖了个坑,一切都得从"Hello World"开始. hello.S .data msg:     .ascii      "Hello, World!\n" len = . - msg .text .globl _start _start:     /* syscall write(int fd, const void *buf, size_t count) */     mov     %r0, $1     /* fd -> stdout */  

我的汇编学习之路(2):主要术语和概念

对于不折不扣的汇编新手来说,第一部分中出现的很多概念可能不是很明白,于是我决定写更多有价值的文章.所以,让我们开始<我的汇编学习之路>的第二部分的学习. 术语和概念 当我写了第一篇之后,我从不同的读者那获得很多反馈,第一篇中有些部分不明白,这就是本文以及接下来几篇从一些术语的描述开始的原因. 寄存器(Register):寄存器是处理器内小容量的存储结构,处理器的主要功能是数据处理,处理器可以从内存中获得数据,但这是一种低速的操作,这就是为什么处理器为什么要有自己数据存储结构,称为"寄

基于8086CPU微处理器的汇编学习之PUSH、POP指令

--------------------------------------------- 栈,是一种数据结构,我觉得栈是抽象的,但是它同样也是实际的,因为它在内存中是连续的内存,只不过人们限制了它的使用:后进先出,学数据结构两年了,现在才理解,实在惭愧. push  ax   ;I.sp = sp - 2                  II .取出ax中的数据,放入当前栈顶 pop   ax   ;I.栈顶地址取出数据,放入ax中   II.sp = sp + 2 ------------