1. Заголовок или название темы должно быть информативным 2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE] 3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора. 5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM! 6. Проверяйте программы перед тем, как выложить их на форум!!
Пытаюсь сделать процедуру вывода числа в десят. представлении на экран. Делю, кладу в стек, достаю в обратном порядке. Проблема в том, что при запуске из TurboDebugger'a при делении в ax почему-то 0 ,а в dx вообще ерунда какая-то.
use16 org 100h mov ax,4321 call WPrint mov ax,4c00h int 21h ;---------------------------------------------------------- WPrint: ; ax:выводимое слово или байт push ax ; \ push cx ; | сохранение регистров которые будут использоваться push dx ; / Divizion: xor dx,dx div word[10] push dx inc cx cmp ax,0 jnz Divizion mov ah,02h ; подготовка прерывания Print: pop dx add dl,48 int 21h loop Print pop dx ; \ pop cx ; | восстановление регистров pop ax ; / ret ;----------------------------------------------------------
Cпасибо, с делением разобрался. Подскажите только как результат на экран вывести. Я пробовал mov ah,08h int 21h и int 29h в TD оба нормально, а вот в Windows либо виснет, либо вообще не запускается.