Как можно реализовать поочерёдно использовать все строки массива, причём обращаясь к каждой строке массива НЕ по имени, а по НОМЕРУ СТРОКИ МАССИВА. И всё это в цикле. Примерно вот так можно? Тут не работает что-то... :data Array: String0 db "нулевая",0 String1 db "первая",0 String2 db "Вторая",0 String3 db "Третья",0 String4 db "Четвёртая",0 String5 db "пятая",0 konec db "массив окончен",0 .code ;Показать мессаги со всеми строками массива поочерёдно, причём нужен именно цикл! xor edx,edx ; Счётчик увеличения номера строки массива massiv: ; Метка цикла с условием... ; Мессага с очередной строкой массива... invoke messageBox 0,Array+[edx],Array+[edx],,0 inc edx ; увеличиваем номер строки... cmp dl,6 ; Если показали уже пятую строку. выход jne jmp massiv ; Мессага об окончании... invoke messageBox 0,addr konec,addr konec,0
добавь еще в данных tbl dd String0,String1,String2,String3,String4,String5 и будет invoke MessageBox, 0, tbl[ebx*4], tbl[ebx*4],0 не edx не ecx и не eax лучше использовать для цикла, т.к. после MessageBox они испортятся
Почему неизвестно? Количество как раз известно. У меня тот же вопрос - как можно реализовать это в цикле?
если известно: .data count dd ... .code lea eax, array mov ecx, count loop: jecxz ext push ecx push eax MsgBox [eax] pop eax pop ecx dec ecx add eax, 4 jmp loop ext:
.data count dd ... pointer dd offset array .code loop: mov eax, pointer mov ecx, count jecxz ext MsgBox [eax] dec count add pointer, 4 jmp loop ext: