安達と島村 2020-02-06 22:35 采纳率: 0%
浏览 243

汇编语言的在代码段中使用栈的数据改变的问题

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-26 02:24
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是关于汇编语言中的数据堆栈操作。在汇编语言中,数据堆栈是一种用于存储和管理数据的结构,它允许程序访问内存中的数据。

    然而,在某些情况下,当一个函数执行完毕后,数据堆栈可能会被清理或重置,这可能导致原来的数据丢失或者不正确。这种现象被称为“数据污染”。

    以下是一个简单的示例,展示了如何在汇编语言中处理这种情况:

    section .data
        data1 db 10, 'a', 20
        data2 db 30, 'b', 40
    
    section .text
        global _start
    
    _start:
        ; 将数据堆栈中的数据保存到内存中
        push dword [data1]
        pop eax
        mov ebx, eax
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
        add edx, eax
        mov esi, edx
        add esi, eax
        mov edi, esi
        add edi, eax
        mov ebp, edi
        add ebp, eax
        mov esp, ebp
        mov eax, esp
        mov ebx, esp
        add ebx, eax
        mov ecx, ebx
        add ecx, eax
        mov edx, ecx
    
    评论

报告相同问题?