zoukankan      html  css  js  c++  java
  • 6.汇编语言--汇编基本元素、寄存器、内存初步调试

    基本知识点:

    (1)ESP:栈指针寄存器(extended stack pointer),其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧的栈顶。
    (2)EBP:基址指针寄存器(extended base pointer),其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧的底部。

    汇编实现加法运算调试寄存器和内存

    .586    
    .MODEL flat,stdcall
    option casemap:none
    
    ; inc 是一个头文件
    include  windows.inc
    include user32.inc
    include kernel32.inc
    ;msvcrt.inc 引用c中的输入输出功能
    include  msvcrt.inc
    
    ;库文件
    includelib user32.lib
    includelib kernel32.lib
    includelib msvcrt.lib
    
    .data
    format db "%d",0
    
    .code
    main proc
        ;将5放到eax寄存器中  mov 有两个操作数
        mov eax,5
    
        ;add 是加法指令  操作数1+操作数2 结果放在操作1里面
        add eax,6
        push eax
        push offset format
        call crt_printf
        ;压栈平衡 出栈
        add esp,8
        push 0
        call ExitProcess
        add esp,4
    
    main ENDP
    END    main
    
    ; 整数产量
    ;2进制 后面加b
    ;8 o/q
    ;10 d
    ;16 h

    调试过程

    将5放在eax 寄存器中

    mov eax 5

     add 实现加法运算:

    push 入栈   数字占4个字节

    ESP:栈指针寄存器(extended stack pointer),其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧的栈顶

     继续push 入栈,向里面推4个字节

     打印出栈里面的内容

     add exp,8   出栈8个字节,前面入栈的全部出栈,堆栈平衡

  • 相关阅读:
    CMD命令
    python函数
    steam更新出错 应用运行中
    更改steam的游戏库
    python 3.6 setup
    vim 安装
    绝地求生大逃杀,改配置
    回写盘写速度被限速为10M左右
    JAVA和C# 3DES加密解密
    DES/3DES/AES区别
  • 原文地址:https://www.cnblogs.com/trevain/p/14502583.html
Copyright © 2011-2022 走看看