汇编语言第三版读书笔记

第一章 基础知识

   

硬件的体系结构

   

机器指令

二进制数字

解析成高低电压,电子元件收到驱动,进行运算

机器语言

机器指令的集合

每一种cpu设计上的不同导致机器语言的不同

汇编语言

一种需要解释的语言

为了将机器指令表示为一些易记得符号

存储器

放置指令和数据的容器

cpu运行的关键

存储单元

存储器计量单位

单位为1byte=8bit 1024b=1k

地址总线

储存单位的地址

cpu和其他元件通信的导线

数据总线

数据

cpu和其他元件通信的导线

控制总线

选项,读或写

cpu和其他元件通信的导线

地址线宽

寻址范围

一根导线可以发出两种信号,n根导线2的n次方

数据线宽

传输速度

1次传输为n根导线的数据

随机存储器RAM

存放程序和数据

  

只读存储器ROM

Bios

  

内存地址空间

统一的存储器访问方式

  

运算器

信息处理

  

控制器

控制

  

寄存器

信息存储

  

Ax 16位一个字

Ah+al

高八位加第八位

Mov Ax,[0]

将段ds寄存器内存地址偏移0个单位,取一个字

  

cpu栈的实现

如何将一个段地址表示为栈,任意时刻ss:sp指向栈顶

利用ss段存储器和sp偏移存储器

一段内存 数据段代码段栈段

对于数据段只要将地址放置ds寄存器

代码段放置cs 栈段ss

code段,data,stack段

Code-1=stack

Code-2=data

   

   

X86汇编指令

   

Mox ax,18

将18送入寄存器AX

AX=18

Mov ah,78

78送入寄存器AH

AH=78

Add ax, 8

将AX寄存器的值加8

AX=AX+8

   

808616位结构的cpu就是说数据传输,寻址范围为2的16次方也就是65k

外部地址总线为20位,有1m寻址能力。cpu只能使用65k的存储单元

于是cpu采用了两个16位地址合成一个20位的方法

   

CPU相关部件提供两个16位的地址,一个为段地址,一个为偏移地址

段地址和偏移地址通过数据总线送入一个地址加法器的部件

将两个16位地址合并成一个20位物理地址

地址加法器将20位物理地址送入输入输出控制电路

输入输出控制电路将20位地址送到外部地址总线

外部地址总线送到存储器

地址加法器采用 段地址*16+偏移地址的方式和成物理地址

比如8086CPU访问物理地址为123c8h的内存单元

   

1230 1230*16=12300

00c8 00c8

   

一个十进制数向左移动一位等于这个数乘10

一个2进制数向左移动一位等于这个数*2

一个16进制数向左移动一位等于这个数*16

   

段地址*16+偏移地址的方式和成物理地址的本质就是为了使2个数相加表示一个大的数

   

CPU中cs:ip就是段地址和偏移地址,cs和ip提供了指令的地址 8086加电启动和复位后cs指向ffffh ip指向0000h

   

mov不能修改csip的值只有转移指令可以修改

   

last in first out

push ax 由两部完成

1 sp=sp-2 ss:sp指向新的栈顶

2 ax的值送入新的栈顶

   

cpu在设置栈时,必须是往低地址存,从低地址取,所以说栈顶是由高地址向低地址增长

   

push ax

1 将栈顶的值取到ax

2 sp+=2

   

   

   

   

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值