zoukankan      html  css  js  c++  java
  • 汇编

    寄存器 (8086以内存作为战场,用寄存器做为军事基地,以加速工作)以8086为例:

      8086 有14个16位寄存器,可分为:通用寄存器、指令指针、标志寄存器和,段寄存器

       (1)通用寄存器

               数据寄存器

               AH&AL=AX(accumulator): 累加器。常用于运算,以及io指令所传输的数据。

               BH&BL=BX(base): 基址寄存器。 常用于地址索引。

               CH&CL=CX(count): 计数寄存器。常用于计算值,如位移,循环时的计数器。

               DH&DL=DX(data): 数据寄存器。常用于数据传递。

               指针寄存器和变址寄存器

               SP(Stack Pointer): 堆栈指针。与SS配合,指向堆栈地址,永远指向栈顶,无法直接使用。

               BP(Base Pointer): 基址指针寄存器。用作SS的一个相对基址位置,系统栈最上层的栈底。

               SI(Source Index): 源变地址寄存器。可用来存放相对DS段之源变址指针。

               DI(Destination Index): 目的变址寄存器。用来存放相对于ES段之目的变址指针。

        (2)指令指针IP

                IP指向的是指令地址的段内地址偏移量,根据操作字节的长度进行移动。1字节就加1。

        (3)标志寄存器

                OF 溢出标志位

                DF 方向标志位
                IF 中断允许标志位
                TF 跟踪标志位
                SF 符号标志
                ZF 零标志
                AF 辅助进位标志位
                PF 奇偶标志位
                CF 无符号数运算知否进位

         (4)段寄存器
                CS(Code Segment): 代码段寄存器
                DS(Data Segment): 数据段寄存器
                SS(Stack Segment): 堆栈段寄存器
                ES(Extra Segment): 附加段寄存器

    基本汇编语法 (AT&T/UNIX 与Intel的对比 )

     基本内联汇编

         asm("cli")  便会执行 cli,即禁止执行中断

    扩展内联汇编

        asm ("leal (%1,%1,4), $0"

                  : "=r" (x)

                  : "0" (x) );

        上述完成了 "乘5的操作",

        q代表了可以从eax,ebx,ecx,edx中分配寄存器,r还会允许从esi和edi中选择

        =0使得一个变量的输入和输出都保存在一个寄存机中,即 %1=%1 + %1 * 4

    实模式与保护模式

        实模式寻址

            8086CPU数据总线为16位,即一次最多取2^16=64KB范围内数据,即段大小64KB。但地址总线20位,即2^20=1MB的寻址能力。

            因此,采用了分段。由段基地址+段内偏移地址表示。

        保护模式寻址

            通过 段选择符+偏移地址 计算出线性地址

                            

        分页机制

            若不采用分页,则线性地址就是物理地址。

              通过把物理地址分成固定大小的页(2^12=4KB)。用低12位表示

              高10位表示页目录,中间10位代表页表

           

         

    阅读内容:

      内联汇编 : http://www.delorie.com/djgpp/doc/brennan/brennan_att_inline_djgpp.html

      寄存器:https://blog.csdn.net/qq_39536716/article/details/89791602

      实模式与保护模式:https://blog.csdn.net/rosetta/article/details/8933200

      6.828: PC hardware and x86 :https://pdos.csail.mit.edu/6.828/2018/lec/l-x86.pdf

  • 相关阅读:
    java知识总结-15
    java知识总结-14
    java知识总结-13
    Java知识总结-12
    Java知识总结-11
    Java知识总结-10
    Java知识总结-9
    Java知识总结-8
    Java知识总结-7
    SSO
  • 原文地址:https://www.cnblogs.com/lmhyhblog/p/11642896.html
Copyright © 2011-2022 走看看