;; (C) David Vajda ;; 2025-08-14 ;; nasm linux/debian gnu i586/amd64/i386 sort characters in string excersize global _start section .data toSortStr: db "adjasdhajsdaasdaksqweqwasdasdasjdasdjlajsdlasds", 10, 13, 0 toSortStrLen: dq 0x0000000000000000 section .text _start: mov rcx, 0x00 mov rsi, toSortStr loop1: inc rcx mov ah, [rsi] inc rsi cmp ah, 0x00 jne loop1 mov [toSortStrLen], rcx mov rdx, [toSortStrLen] mov rcx, toSortStr mov rax, 0x04 mov rbx, 0x01 int 0x80 mov rsi, toSortStr loop2: mov ah, [rsi] cmp ah, 0x00 je loop2end mov rdi, rsi loop3: inc rdi mov al, [rdi] cmp al, 0x00 je loop3end mov ah, [rsi] mov al, [rdi] cmp ah, al jle cond1 mov ah, [rsi] mov al, [rdi] mov [rsi], al mov [rdi], ah cond1: jmp loop3 loop3end: inc rsi jmp loop2 loop2end: mov rdx, [toSortStrLen] mov rcx, toSortStr mov rax, 0x04 mov rbx, 0x01 int 0x80 mov rax, 0x01 mov rbx, 0x00 int 0x80