Выводящ= на экран десятичное значение регистра AX, выводит пустую строку - Assembler

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

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

не могу понять, почему выводится пустая строка, подскажите, пожалуйста, в чем может быть проблема? Уже второй день сижу с этим выводом
.model small            ; Модель памяти
.stack 100h         ; Установка размера стека
 
.data
Number dw 12345
String      db  5 dup (?),'$'  ; Резервируем 5 байт для строки
StringEnd   =   $-1            ; Указывает на символ '$'
 
.code
Start:
    mov ax, @data        ; установка в ds адреса
    mov ds, ax          ; сегмента данных
 
    std                             ; Устанавливаем ОБРАТНЫЙ порядок записи
    lea di,StringEnd-1     ; ES:DI = последний символ строки String
 
    mov ax,Number          ; Заносим в AX число для перевода
 
; Начинаем перевод числа AX в строку
    mov cx,10h                ; Задаемся делителем CX = 10
Repea:
    xor dx,dx                  ; Обнуляем DX (для деления)
    div cx                       ; Делим DX:AX на CX (10),
                                          ; Получаем в AX частное, в DX остаток
    xchg    ax,dx                  ; Меняем их местами (нас интересует остаток)
    add al,'0'                   ; Получаем в AL символ десятичной цифры
    stosb                          ; И записываем ее в строку
    xchg    ax,dx                  ; Восстанавливаем AX (частное)
    or  ax,ax                  ; Сравниваем AX с 0
    jne Repea                 ; Если не ноль, то повторяем
 
; Теперь осталось вывести строку на экран
    mov ah,9
    lea dx,[di+1]           ; Заносим в DX адрес начала строки
    int 21h                   ; Выводим ее на экран
 
    mov ax, 4C00h       ; функция DOS выхода из пpогpаммы (в AL код возврата)
    int 21h 
 
END     Start

Решение задачи: «Выводящ= на экран десятичное значение регистра AX, выводит пустую строку»

textual
Листинг программы
Number dw 12345

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


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

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

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