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-05-09 22:33:47 发布