Не получается передать адрес строки в asm вставке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброе время суток. При выполнении данного кода возникает две ошибки: 1 не получается передать адрес строки в регистр dx 2 компилятор не видит метку show Пожалуйста, помогите решить проблему. код:
int main(){
 
char dta[0x2e];
char allfiles[3]="*.*";
asm{
//dta
mov ah,1ah
mov dx, dta
int 21h
 
//find first
mov ah, 4eh
mov cx,0
mov dx, allfiles
int 21h
 
//show
show:
mov ah, 9
mov dx, dta+1eh
int 21h
 
//find next
mov ah,4fh
mov dx, dta
mov dword[dta+1eh],0
int 21h
jnc show              
}

return 0;
}

Решение задачи: «Не получается передать адрес строки в asm вставке»

textual
Листинг программы
mov dx, offset dta
add dx, 1eh
mov [dx], 0

Объяснение кода листинга программы

  1. Переменная dta содержит адрес строки в asm вставке.
  2. Код перемещает значение регистра dx вперед на 1eh (единицу).
  3. Значение регистра dx используется как смещение для адреса строки в asm вставке.
  4. Результат вычисления записывается в память по адресу, соответствующему значению регистра dx.
  5. Значение 0 записывается в память по адресу, соответствующему значению регистра dx.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.75 из 5
Похожие ответы