汇编语言(一)
<h1>汇编语言</h1><h2>第一章 基础知识</h2>
每一种微处理器都有自己的机器指令集(汇编语言),
由于很长的1与0难以辨别与记忆,所以诞生汇编语言
<pre><code>操作:寄存器BX的内容送到AX中
机器指令:1000100111011000
汇编指令:mov ax,bx
</code></pre>
<p>汇编语言由<code>汇编指令</code>,<code>伪指令</code>,<code>其他符号</code>(后两者都不对应机器码)<br>
分别对应:<code>机器码的助记符</code>,<code>编译器执行</code>,<code>+,-,*,/由编译器识别</code></p>
<p>在存储器(内存)和磁盘上,指令和数据没有区别,都是二进制信息。CPU在工作的时候把有的信息看作指令,有的信息看做数据</p>
<pre><code>1000100111011000->89D8H(为了直观计算机在显示数据多用十六进制数)(数据)
1000100111011000->mov ax,bx(指令)
</code></pre>
<p>一个存储器即一个存储单元,一个Byte,即8个二进制位</p>
<pre><code>1KB=1024B=2^10B,1MB=1024KB=2^20B,1GB=1024MB=2^30B,1TB=1024GB=2^40B
</code></pre>
<p>CPU对数据进行读写操作</p>
<pre><code>*存储单元的地址(地址信息)->地址总线(地址线的集合)(线是导线)
*器件的选择,读或写命令(控制信息)->控制总线(控制线的集合)
*读或写的数据(地址信息)->数据总线(数据线的集合)
mov ax,//=>*3,3号地址单元的内容
</code></pre>
<h2>第二章 寄存器</h2>
<p>8086的CPU所有的寄存器都是16位,首先通用寄存器AX,BX,CX,DX,每一个可以被拆为两个</p>
<p>字节(byte)和字(word):8,16bit 字分为高低字节 </p>
<pre><span style="color: rgba(0, 0, 0, 1)">数据传送(mov指令) </span>
<span style="color: rgba(128, 0, 128, 1)"></span><span style="color: rgba(0, 0, 0, 1)">mov ax,1a
<p>mov ax,bx</p></span></pre><p></p>
<pre><span style="color: rgba(0, 0, 0, 1)">增加指令
</span><span style="color: rgba(128, 0, 128, 1)"></span><span style="color: rgba(0, 0, 0, 1)">
add ax ,1a
add ax,bx</span></pre>
<h3>CS和IP</h3>
<p>CS和IP是8086CPU中两个最为关键的寄存器,CS:IP指向CPU即将执行好的指令,修改CS:IP指令jmp 段地址:偏移地址,比如jmp 2AE3:3,此外,jmp ax 在含以上可以认为是IP=AX</p>
<p>8086CPU工作过程</p>
<ul>
<li>1.从CS:IP指向内存单元读取指令,读取的指令进入指令缓存器</li>
<li>2.IP指向下一条指令</li>
<li>3.执行指令(转到步骤1)</li>
<p>Debug命令:</p>
<ul>
<li>R:查看,改变CPU寄存器的内容</li>
<li>D:查看内存中的内容</li>
<li>E:改写内存中的内容</li>
<li>U:将内存中的机器指令翻译成汇编指令</li>
<li>T:执行一条机器指令</li>
<li>A:以汇编指令格式在内存中写入一条机器指令</li>
</ul>
</ul>
</div>
<div id="MySignature" role="contentinfo">
zer0_1s<br><br>
来源:https://www.cnblogs.com/zuoanfengxi/p/12300726.html
頁:
[1]