汇编语言使用动态内存分配函数实现一个单向列表,输入任意数字直到输入0,然后输出所有已输入数字

这篇博客介绍了如何使用汇编语言实现动态内存分配来创建一个单向列表。用户可以输入任意数字,当输入0时停止,程序会输出之前输入的所有数字。
摘要由CSDN通过智能技术生成
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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值