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个字节,前面入栈的全部出栈,堆栈平衡

 

posted @ 2021-03-08 22:00  包子TT  阅读(159)  评论(0编辑  收藏  举报