美文网首页
关于汇编的基础学习总结

关于汇编的基础学习总结

作者: LetBe | 来源:发表于2018-07-25 11:44 被阅读0次

关于汇编 很多人觉得有点晦涩难懂,但静下心,慢慢的摸索,也能很快的掌握

先说8086的汇编,因为最简单嘛(原谅我的无耻^_^)

这里只写自己的理解:

1、要明白 地址总线, 数据总线,控制总线

地址总线:很好理解,就是用来传递地址的,寻址。8086就有20根线,所以它的寻址能力是1M,也就是2^20。

 数据总线:用来传递数据 有16根,也就是 64k

控制总线:告诉cup 数据是 用来写的  还是用来读取的

2、关于寄存器:

DS:数据寄存器,用来存储数据

CS:代码段寄存器,用来存储代码,一般寻址 都是 段地址 + ip地址,如1234H + 05H,变成真正的地址,就成了 12340H + 05H = 12345H ,也就是 段地址 *16 + 偏移地址

栈SS:存放数据的一块区域 一般来说 大小是 64k,之所以是64k,是由于偏移地址造成的,偏移地址sp,FFFFH最大,如果是push 则 指针从高位到低位移动,每次2个字节,而且,异动前,sp指针指向前一个地址。规则是先进后出。

3、AX:AX地址分为 ah 和 al  主要是用来兼容之前的版本,分出了 高8wei,低8位,

BX:同ax一样

一般我们在定义段地址的时候,不能直接给 段地址进行赋值的 如:mov cs :2233H ❌,

应该是 mov ax ,2233H

            mov cs, ax

如果是数据段寄存器,进行取值,则:

           mov ax ,2233H

            mov ds, ax

           mov ax,[0]

这样会取出2个字节,分配到ax中,取多少字节,是根据寄存器的大小决定的。

4、loop用法

其用法同do while的用法是一样的,如:需求 是 2^6

mov ax ,2

mov cs,5H   //需要执行循环的次数,而且不要开始就会0,因为每执行一次 ,次数就会减一,0H之后就会变成FFFH,就会点成最大数。

s: add ax ,ax   //s  相当于名称

loop s

相关文章

网友评论

      本文标题:关于汇编的基础学习总结

      本文链接:https://www.haomeiwen.com/subject/qhpymftx.html