打印堆栈上数据的大小以字节为单位

问题描述

我正在尝试模仿sizeofCx86-assemblypush的行为,即从push操作开始以字节为单位打印推入堆栈的数据大小使用write系统调用指向当前堆栈指针(在edp操作之后)。

我正在尝试通过在push操作之前将堆栈指针的内存地址存储到ebp - esp寄存器/基址指针中来实现这一点。然后减去eax的值并在push操作之后存储在eax中。最后,我将stdout整数值打印到section .text global _start _start: ; set the frame pointer to the beginning of the stack before- ; data is pushed. mov ebp,esp push byte 0x00 ; <- null terminating byte/string truncation push 0x64636261 ; <- data mov eax,ebp sub eax,esp ; start of stack - end of stack = sizeof(data) stored in eax mov edx,4 mov ecx,eax mov ebx,1 mov eax,4 int 0x80 mov eax,1 int 0x80

例如:

nasm -f elf32 -g test.asm && ld -melf_i386 test.o -o test

编译为:

5

编译此代码时,我没有收到标准输出。

预期的标准输出是:

eax

我缺少什么或做错了什么?如何正确将字符串的大小(以字节为单位)存储在stdout中,并将整数/大小打印为<div x-data="modal()" class="mt-6" x-cloak> <template x-on:show-modal.window="isOpenModal = $event.detail.show; modalHeader = $event.detail.modalHeader; modalData = showData($event.detail.modalData); "></template> <div class="absolute z-50 top-0 left-0 w-full h-full flex items-center justify-center bg-black bg-opacity-50" x-show="isOpenModal"> <div class="z-50 text-left bg-gray-200 px-4 shadow-xl rounded-lg mx-2 md:max-w-lg md:p-6 lg:p-8 md:mx-0 h-auto " > <div class="flex justify-between"> <h2 id="modalHeader" class="text-2xl" x-text="modalHeader"> </h2> </div> <div class="w-full border border-gray-600 mt-4" ></div> <div id="modalContent" class="text-lg w-auto" > </div> </div> </div> </div>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...