HeapCreate proto
HeapAlloc proto
WriteConsoleA proto
GetStdHandle proto
ReadInt64 proto
ExitProcess proto
Crlf proto
WriteInt64 proto
STD_OUTPUT_HANDLE EQU -11
STD_INPUT_HANDLE EQU -10
ListNode Struct
NodeData qword ?
NextPtr qword ?
ListNode ends
HEAP_START = 2000000
HEAP_ZERO_MEMORY = 00000008h
HEAP_MAX = 400000000
NULL = 0
.data
stdOutHandle qword 0
node ListNode <>
nb qword 0
sc byte "Please enter a 64-bit signed integer,End input when you enter 0",0dh,0ah ;输出提示
scfh qword 0
hHeap qword 0
.code
main proc
sub rsp,80
mov rcx,STD_OUTPUT_HANDLE
call GetStdHandle
mov stdOutHandle,rax
mov rcx,stdOutHandle
mov rdx,offset sc
mov r8,lengthof sc
mov r9,offset scfh
mov qword ptr [rsp + 4 *SIZEOF qword],0
call WriteConsoleA
mov rbx,0
mov rcx,NULL
mov rdx,HEAP_START
mov r8,HEAP_MAX
call HeapCreate ;创建堆
mov hHeap,rax
mov rcx,hHeap
汇编语言使用动态内存分配函数实现一个单向列表,输入任意数字直到输入0,然后输出所有已输入数字
最新推荐文章于 2024-04-07 14:00:44 发布
这篇博客介绍了如何使用汇编语言实现动态内存分配来创建一个单向列表。用户可以输入任意数字,当输入0时停止,程序会输出之前输入的所有数字。
摘要由CSDN通过智能技术生成