Неправильный вывод из программы - Assembler

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

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

Всем доброго утра. Столкнулся с проблемой которую никак не могу понять. Имеется код программы
.model small
.386
.stack 100h
 
.code    
        start:          
            mov ax,127
            mov bx,35
 
            qqq:
            sub ax,bx
            inc cx
            cmp ax,bx
            ja qqq

            xor ax,ax
        mov ax,cx
    
        call vyv
        
        mov ax,4c00h
        int 21h
 
    vyv proc
    
    xor     bx,bx
    xor     cx, cx
    mov     bx, 10 
oi2:
    xor     dx,dx
    div     bx
    push    dx
    inc     cx
    test    ax, ax
    jnz     oi2
    mov     ah, 02h
oi3:
    pop     dx
 
    add     dl, '0'
    int     21h
    loop    oi3
   ret
   vyv endp
  end start
программа компилируется, но при выполнении выводит 258, а не 3 как должно. Хотя программа
.model small
.386
.stack 100h
 
.code    
        start:          
            
            mov cx,3
        mov ax,cx
    
        call vyv
        
        mov ax,4c00h
        int 21h
 
    vyv proc
                
    xor     bx,bx
    xor     cx, cx
    mov     bx, 10 
oi2:
    xor     dx,dx
    div     bx
    push    dx
    inc     cx
    test    ax, ax
    jnz     oi2
    mov     ah, 02h
oi3:
    pop     dx
 
    add     dl, '0'
    int     21h
    loop    oi3
   ret
   vyv endp
  end start
выводит 3 как положено. Излазил обе программы в отладчике, но так и не смог разобраться. Что то упускаю, но что не могу понять. Подскажите пожалуйста в чем проблема и как ее исправить. Заранее всем спасибо.

Решение задачи: «Неправильный вывод из программы»

textual
Листинг программы
; Файл типа COM ---------
AX 0000  CX 00FF  DS:SI 2075:0100  CS:IP 2075:0100  BP 0000  ODITSZAPC
BX 0000  DX 2075  ES:DI 2075:FFFE  SS:SP 2075:FFFE  FL 7202  001000000

; Файл типа EXE ---------
AX 0000  CX 00FF  DS:SI 2075:0200  CS:IP 2065:0200  BP 0000  ODITSZAPC
BX 0000  DX 2075  ES:DI 2075:0200  SS:SP 2C0D:0200  FL 7202  001000000

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


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

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

7   голосов , оценка 3.571 из 5