Мусор после строки - Assembler
Формулировка задачи:
Помогите пожалуйста, весь мозг сломал. Почему выводиться мусор после строки? Вот код. Программа переводит число в ASCII код и выводит его на экран. Через дебаггер мусора нет.
.model tiny .code org 100h start: mov ax,word ptr[value] mov dx,word ptr[value+2] mov bx,10 m1: div bx add dx,'0' push dx mov dx,0 inc cx cmp ax,0 jne m1 lea di,str1 m2: pop ax mov [di],al inc di dec cx cmp cx,0 jne m2 mov bl,'$' mov [di],bl mov dx,offset str1 mov ah,09h int 21h mov ax,4c00h int 21h str1 db dup(?) value dd 542657 end start
Решение задачи: «Мусор после строки»
textual
Листинг программы
str1 db 7 dup('$')
Объяснение кода листинга программы
- В коде используется язык программирования Assembler.
- Первая строка кода:
str1 db 7 dup('$')
str1
- это имя переменной.db
- это оператор, который используется для определения размера и значений переменных в Assembler.7
- это количество повторяющихся символов '$', которые будут записаны в переменнуюstr1
.dup('$')
- это функция, которая повторяет символ '$' в переменнойstr1
7 раз.- Результат: в переменной
str1
будет содержаться строка из 7 символов '$'.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д