Мусор после строки - 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('$')

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

  1. В коде используется язык программирования Assembler.
  2. Первая строка кода: str1 db 7 dup('$')
  3. str1 - это имя переменной.
  4. db - это оператор, который используется для определения размера и значений переменных в Assembler.
  5. 7 - это количество повторяющихся символов '$', которые будут записаны в переменную str1.
  6. dup('$') - это функция, которая повторяет символ '$' в переменной str1 7 раз.
  7. Результат: в переменной str1 будет содержаться строка из 7 символов '$'.

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


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

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

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