Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с программой по FASM 
:(
    Опции темы
Tanchik0611
Дата 19.10.2012, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 19.10.2012

Репутация: нет
Всего: нет



Помогите найти ошибку в программе и исправить её( программа должна переводить данное число в текстовую строку(в десятичной системе) и выводить его на экран).

Вот текст программы:

;include 'win32w.inc'
org 100h

begin:
        mov word ax, -127
        test ax, 0x8000
        jz posit
        mov di, 1
        jmp negat
negat:
        not ax
        inc ax
        jmp divis
posit:
        mov di, 0
        jmp divis
divis:
        xor dx, dx
        inc cx
        mov word bx, 10
        idiv word bx
        push dx
        test ax, ax
        jnz divis
        test di, di
        jnz sing
        jmp output
sing:
        mov ah, 02h
        mov dl, '-'
        int 21h
        jmp output
output:
        mov ah, 02h
        dec cx
        pop dx
        add dl,30h
        int 21h
        test cx, cx
        jnz output
        int 20h



К сообщению прикреплён результат того, что у меня выдаёт.

http://s1.ipicture.ru/uploads/20121019/7X13YSXL.jpg

Это сообщение отредактировал(а) Tanchik0611 - 19.10.2012, 17:45
PM MAIL   Вверх
Чупакабро
Дата 21.10.2012, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.2.2007

Репутация: нет
Всего: 4



Мне щас негде проверить, но попробуй вот так:

Код

org 100h

begin:
        mov word ax, -127
        test ax, 0x8000
        xor cx, cx
        jz posit
        mov di, 1
        jmp negat
negat:
        not ax
        inc ax
        inc cx
        jmp divis
posit:
        mov di, 0
        jmp divis
divis:
        xor dx, dx
        inc cx
        mov word bx, 10
        idiv word bx
        push dx
        test ax, ax
        jnz divis
        test di, di
        jnz sing
        jmp output
sing:
        mov ah, 02h
        mov dl, '-'
        int 21h
        jmp output
output:
        mov ah, 02h
        dec cx
        pop dx
        add dl,30h
        int 21h
        test cx, cx
        jnz output
        int 20h

мне кажется, что это из-за того, что в сх не контролируется значение

--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0643 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.