欢迎来到天天文库
浏览记录
ID:47481866
大小:102.01 KB
页数:17页
时间:2020-01-11
《汇编语言知识大全》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第一章基础知识:一.机器码:1.计算机只认识0,1两种状态。而机器码只能由0,1组成。故机器码相当难认,故产生了汇编语言。 2.其中汇编由三类指令形成:汇编指令(有机器码对应),伪指令,其他符号(编译的时候有用)。 每一总CPU都有自己的指令集;注意学习的侧重点。二.存储器:1.存储单元中数据和指令没任何差别。 2.存储单元:Eg:128个储存单元(0~127)128byte。 //1字节=1B=1byte=8bit
2、 条件反射:1存储单元=1B=8个2进制;以后的ax,cs之类的占两个存储单元, ah之类的占一个 3.CPU对存储器的读写:地址信息+控制信息+数据信息三.总线: 1.地址总线:寻址用,参数(宽度)为N根,则可以寻到2^N个内存单元。 //因为一根总线只能表示0,1,N根的话可以表示2^N 2.数据总线:传送数据用,参数为N根,一次可以传送N/8个存储单元。 3.控制总线:cpu对元器
3、件的控制能力。越多控制力越强。 四.内存地址空间:1.由地址总线决定大小。 2.主板:cpu和核心器件(或接口卡)用地址总线,数据总线,控制总 线连接起来。 3.接口卡:由于cpu不能直接控制外设,需通过接口卡间接控制。 4.各类存储器芯片:RAM,BIOS(主板,各芯片)的ROM,接卡槽的 RAM CPU在操控他们的时候,把他们都当作内存来对待,把他们总的看作一个由 若干个存储单
4、元组成的逻辑存储器,即我们所说的内存地址空间。 自己的一点理解:CPU对内存的操作是一样的,但是在cpu,内存,芯片之间的硬件本身所牵扯的线是不同的。所以一些地址的功能是对应一些芯片的。 第二章寄存器引入:CPU中含有运算器,寄存器,控制器(由内部总线连接)。而寄存器是可以用来指令读写的部件。8086有14个寄存器(都是16位,2个存储空间)。一.通用寄存器(ax,bx,cx,dx),16位,可以分为高低位 注意1.范围:16位的2^16-1,8位的2^8-1 2.进行数据传送或运算时要
5、注意位数对应,否则会报错二.字:1.1个字==2个字节。 2.在寄存器中的存储:0x高位字节低位字节;单元认定的是低单元 数制,16进制h,2进制b三.20根数据总线的16位cpu--8086给出物理地址的方法: 1.20根数据总线(稍外):寻址能力为1M 2.16位的cpu(内部):一次能处理的数据位2^16。 3.方法:物理地址=段地址*16+偏移地址 ;*16==左移四位四.段:1.段地址为16的倍数 2.一个段的长度最长为64K;因为偏移地址为16位,寻址能力为6
6、4K五.回到寄存器--段寄存器(cs,ds,ss,es) 1.cs(代码段寄存器),ip(指针指令寄存器);cs为存放指令的段地址 2.cpu中cs,p的运作过程:先将两个16位的数通过地址加法器变成一个20位的地址,通过输入输出控制电路,寻址并返回给cpu指令。ip自动增加。执行指令。next。。。 3.修改cs;ip:mov不行,jmp行。形为:jmpcs:ip或者jmpip(通用寄存器);转移指令修改ip六.代码段: 1.要小于64K 2.存放后用cs,ip指向第一条指令的首地址
7、。 第三章还是寄存器一.内存中字的存储:因为字(2个存储单位)要存在两个字节当中。运用mov等指令时,指向的是低字节。二.DS和[address] 1.[]中放的是偏移地址,默认段地址是ds。 2.段地址的移入:要通过通用寄存器。三.movaddsub(减)指令 除了处理[]内存可以位数可以不对应,其他都要。四.数据段五.栈 1.概念:FILO,以字为单位。 2.栈顶的单元为低,栈底的单元较高。 3.ss(段寄存器):sp(寄存器):任意时刻指向栈顶。 4.pus
8、h进栈:sp-2mov;pop出栈:,movsp+25.栈的最大容量为64K,超出覆盖 注意初始化的时候栈顶的指向是栈底+1。入出栈最易出错 第四章第一个程序一.源程序的架构:开头:assume(假设)cs:xxx中间:xxxsegment(段) ………… 程序返回:movax,4c00h int21h xxxends结束:end二.从码字到.exew下载masm,运行cmd,找到目录,mas
此文档下载收益归作者所有