Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

ALITA007ROMERO

2
Posts
1
Followers
54
Following
A member registered Aug 09, 2022

Recent community posts

; Simple Assembly Language RPG

; Author: ChatGPT

section .data

prompt db "Choose your character class: 1. Warrior 2. Mage 3. Thief: ", 0

warrior db "You have chosen the Warrior class!", 0

mage db "You have chosen the Mage class!", 0

thief db "You have chosen the Thief class!", 0

invalid db "Invalid choice, try again!", 0

section .bss

choice resb 2

section .text

global _start

_start:

; Display prompt and read user choice

mov eax, 4 ; system call number (sys_write)

mov ebx, 1 ; file descriptor (stdout)

mov ecx, prompt ; pointer to message

mov edx, len_prompt ; length of message

int 0x80 ; call kernel

mov eax, 3 ; system call number (sys_read)

mov ebx, 0 ; file descriptor (stdin)

mov ecx, choice ; pointer to buffer

mov edx, 2 ; max bytes to read

int 0x80 ; call kernel

; Check user choice and display class

cmp byte [choice], "1"

je choose_warrior

cmp byte [choice], "2"

je choose_mage

cmp byte [choice], "3"

je choose_thief

jmp invalid_choice

choose_warrior:

mov eax, 4 ; system call number (sys_write)

mov ebx, 1 ; file descriptor (stdout)

mov ecx, warrior ; pointer to message

mov edx, len_warrior ; length of message

int 0x80 ; call kernel

jmp exit

choose_mage:

mov eax, 4 ; system call number (sys_write)

mov ebx, 1 ; file descriptor (stdout)

mov ecx, mage ; pointer to message

mov edx, len_mage ; length of message

int 0x80 ; call kernel

jmp exit

choose_thief:

mov eax, 4 ; system call number (sys_write)

mov ebx, 1 ; file descriptor (stdout)

mov ecx, thief ; pointer to message

mov edx, len_thief ; length of message

int 0x80 ; call kernel

jmp exit

invalid_choice:

mov eax, 4 ; system call number (sys_write)

mov ebx, 1 ; file descriptor (stdout)

mov ecx, invalid ; pointer to message

mov edx, len_invalid ; length of message

int 0x80 ; call kernel

jmp exit

exit:

mov eax, 1 ; system call number (sys_exit)

xor ebx, ebx ; exit status

int 0x80 ; call kernel

section .rodata

len_prompt equ $ - prompt

len_warrior equ $ - warrior

len_mage equ $ - mage

len_thief equ $ - thief

len_invalid equ $ - invalid

no luck buddy too bad this version does not support linux