首页 > 编程语言 >最规范的汇编函数传参demo

最规范的汇编函数传参demo

时间:2023-06-01 10:44:25浏览次数:48  
标签:传参 汇编 code 函数 demo mov bp ax 子函数

assume cs:code
; 记忆点:  1.主函数, 子函数都需要自己维护bp和sp(当然不维护也行,但是非常容易出bug,所以还是要强烈按照下面子函数头,子函数尾.主函数头尾这么写,最安全.)  2. 函数ip都有压栈出站自动维护但是自己要算明白栈的偏移量.
code segment
    radd proc
        push bp           ;子函数的头部固定写法
        mov bp,sp

        mov si,[bp+4]
        mov di,[bp+6]
        add si,di
        mov ax,si

        pop bp           ;子函数的尾部固定写法.
        ; 打印返回值:
                add al, 30h
                mov dl , al
                MOV     AH,2
                INT     21H
        ret
    radd endp
start:
    mov ax,4
    mov bx,5



    push ax
    push bx               ;主函数头
    call radd
    add sp,4                      ;主函数尾清理栈.

   

 





    mov ax,4c00h
    int 21h
code ends
end start

讲解视频参考:

https://www.zhihu.com/zvideo/1514614054967009282

标签:传参,汇编,code,函数,demo,mov,bp,ax,子函数
From: https://www.cnblogs.com/zhangbo2008/p/17448263.html

相关文章

  • activeMQ Jms Demo
    概述ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMSProvider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位详细一、什么是ActiveMQ百度解释:ActiveMQ是A......
  • IDA 逆向工程 反汇编使用
    IDApro7.0版本from:freebuf用到的工具有IDApro7.0 ,被反汇编的是百度云(BaiduNetdisk_5.6.1.2.exe)。首先,IDApro的长相如下:共有(File,Edit,Jump,Search,View,Debugger,Options,Windows,Help)9个模块,还有下面的诸多小菜单。现在我们点击File,选择Open打开一个文件,这......
  • python avro 数据格式使用demo
    {"name":"UEProcedures","type":"record","fields":[{"name":"imsi","type":"string"},{"name":"time_at","type":&quo......
  • java轻型内存队列处理demo
    java轻型内存队列处理demo@ComponentpublicclassConcurrentLinkedQueueUtils{staticAtpLogBizatpLogBiz;staticAuditLogtTmpDataServiceauditLogDataService;staticConcurrentLinkedQueueconList=newConcurrentLinkedQueue();privatestaticvo......
  • Blazor 跨平台的、共享一套UI的天气预报 Demo
    1.前言很久之前就读过dotnet9大佬的一篇文章,MAUI与Blazor共享一套UI,媲美Flutter,实现Windows、macOS、Android、iOS、Web通用UI,没读过的可以读一读,写的很好。对Blazor跨平台开始比较感兴趣。渐渐发现BlazorHybrid可以在更多的框架上运行,如Winform、WPF,更有Photino这样可以在......
  • shellcode的一个demo例子
    handy-shellcodeBinaryExploitation,50pointsDescription:Thisprogramexecutesanyshellcodethatyougiveit.Canyouspawnashellandusethattoreadtheflag.txt?#include<stdio.h>#include<stdlib.h>#include<string.h>#include&l......
  • AI demo framework
     importpickleimportmatplotlib.pyplotaspltfromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitfromsklearn.neighborsimportKNeighborsClassifierfromsklearn.model_selectionimportcross_val_scorefromsklearnimportm......
  • Intel daal4py demo运行过程
    daal安装(记得先安装anaconda):gitclonehttps://github.com/IntelPython/daal4py.gitcddaal4pycondacreate-nDAAL4PY-cintel-cintel/label/test-cconda-forgepython=3.6mpichcnctbb-develdaaldaal-includecythonjinja2numpysourceactivateDAAL4PYexportC......
  • Pytest - Fixture(10) - 测试用例传参给Fixture
    Pytest-测试用例传参给Fixture大多数时候我们在fixture封装的是登陆、获取cookie等操作,但是一个系统可能不止一个用户,有多个用户;在写测试用例的时候,如何告诉fixture我们需要登录哪个用户?可以通过测试用例给fixture传递参数,指定登陆用户账户信息。传单个参数fi......
  • Pytest - Fixture(9) - Fixture传参给测试用例
    Pytest-Fixture传参给测试用例如果想要依赖fixture传递参数给测试用例,可以通过yield或者return来返回参数;yield:实现setup和teardown,并将参数传递给测试用例;return:仅实现setup,并将参数传递给测试用例而已;传单个参数return传递单个参数:test_py.pyimpo......