Моя проблема в том, что я пытаюсь ввести пользовательский ввод в цикле, и каждый раз, когда я хочу сохранить этот ввод в определенном месте в памяти, чтобы позже получить к нему доступ и распечатать его с некоторыми изменениями.И меня смущает вопрос о том, как сначала объявить массив, который может содержать, например, мои 5 слов, а потом, как каждый раз сохранять входные данные в этот массив.
Точно я беру имена субъектов: ицикл в c ++ будет выглядеть примерно так:
string subjects_code[5]
for(int i=0; i<5; i++)
cin>>subjects_code[i];
// like AFJS421 , CSFA424, SCSJ1023 and so on
Я провел исследование по всему Интернету и на YouTube, обнаружил, что вы не можете объявить массив строк в сборке, у вас в основном один массивбайтов, за которыми следует нулевой терминатор.Я понимаю это, и я сделал свой код с ним, и он работает, но проблема в том, что мне действительно нужно хранить коды 5 предметов в 5 различных переменных (или, по крайней мере, в ячейках памяти), потому что позже после некоторых вычислений мне нужно распечатать обратноэти предметы.
;taking input from user: in a Loop
;in .data I have subjects_code BYTE MAX DUP(?)
MAX = 20
mov ebx,0
mov count, 5 ; cuz ReadString uses ecx as buffersize
InputLoop:
; This is just a prompt out, no need to worry about it
mov ecx, MAX
mov edx, OFFSET Enter_code ; setting offset for prompt
; temp variable to read into it, use it for assgining
mov edx, OFFSET temp_subject_code
call ReadString ; reading the code into temp
mov subjects_code+[ebx], temp_subject_code
add ebx, 4
mov ecx, count
dec count
Loop InputLoop
;---------------------------------------------------------------
После сохранения каждой строки я ожидаю сделать в конце программы:
subject1: SCSJ134
subject2: SCSR231
Subject3: SCSI392
вплоть до Subject5
.