How to resolve the algorithm Singly-linked list/Element insertion step by step in the X86 Assembly programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Singly-linked list/Element insertion step by step in the X86 Assembly programming language

Table of Contents

Problem Statement

Using this method, insert an element C into a list comprised of elements A->B, following element A.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Singly-linked list/Element insertion step by step in the X86 Assembly programming language

Source code in the x86 programming language

; x86_64 Linux NASM
; Linked_List_Insert.asm

%ifndef INSERT
%define INSERT

%include "Linked_List_Definition.asm" ; see LL def task
%include "Heap_Alloc.asm" ; see memory allocation task

section .text

; rdi - link to insert after
; rsi - value that the new link will hold
Insert_After:
  push rdi
  push rsi
  mov rdi, linkSize
  call alloc
  cmp rax, 0
  je Memory_Allocation_Failure_Exception
  pop rdi
  mov dword [rax + value], edi
  pop rdi
  mov rsi, qword [rdi + next]
  mov qword [rax + next], rsi
  mov qword [rdi + next], rax
  ret

%endif

  

You may also check:How to resolve the algorithm 15 puzzle game step by step in the Go programming language
You may also check:How to resolve the algorithm Sierpinski triangle step by step in the VBScript programming language
You may also check:How to resolve the algorithm Sockets step by step in the Pascal programming language
You may also check:How to resolve the algorithm Dragon curve step by step in the C programming language
You may also check:How to resolve the algorithm Sorting algorithms/Pancake sort step by step in the Maple programming language