Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Assembler] Перевод числа в строку, а затем вывод строки на экран 
:(
    Опции темы
Trishi
Дата 5.5.2007, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо! А именно код еще у тебя есть? Можешь и его еще прикрепить?
PM MAIL   Вверх
anwe
Дата 5.5.2007, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Так это JAPH спасибо. Его код. Смотри его сообщение. Для работы необходимо лишь добавить
Код

    .model  small
    .stack    10h
    .186
    .code
выше его строк.
PM MAIL   Вверх
Trishi
Дата 5.5.2007, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добавляю - а экзешник не создается. Тоже ошибка там: "invalid object module"

Это сообщение отредактировал(а) Trishi - 5.5.2007, 23:13
PM MAIL   Вверх
JAPH
Дата 6.5.2007, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



anwe, не согласен! Я использую полное определение сегментов, и мешать его с моделями не следует. Тем более .stack 10h и sseg segment stack ; db 0400h dup (?) немного противоречат друг другу.

Попробуйте:
Код

        .model  small
        .stack  400h
        .code
@:      mov     al, 125    
        aam    
        mov     bh, al    
        mov     al, ah    
        aam    
        mov     bl, al    
        mov     dl, ah    
        mov     ah, 02h    
        add     dl, 30h    
        add     bx, 3030h    
        cmp     dl, 30h    
        je      @1    
        int     21h    
        jmp     @2    
@1:     cmp     bl, 30h    
        je      @3    
@2:     mov     dl, bl    
        int     21h    
@3:     mov     dl, bh    
        int     21h    
        mov     ah, 08h
        int     21h
        mov     ax, 4C00h    
        int     21h    
        end     @

Окно закроется только после press any key.


--------------------
Что непонятно - спрашиваем smile
PM MAIL ICQ   Вверх
Trishi
Дата 6.5.2007, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо! Я запустила - все работает. Только по ходу разбирание в программе возникло пару вопросов:

Код

mov     al, 125         1. Почему мы изначально записываем число именно в al, а не в dl

aam                         2. Для чего нужна эта команда

        mov     bh, al
        mov     al, ah   
        aam               
        mov     bl, al    
        mov     dl, ah    

        add     dl, 30h      

        add     bx, 3030h    3. Зачем мы это делаеми что такое 3030х

        cmp     dl, 30h          
        int     21h       
        jmp     @2    
@1:     cmp     bl, 30h    
        je      @3    
@2:     mov     dl, bl    
        int     21h    
@3:     mov     dl, bh    
        int     21h    

        mov     ah, 08h             4. Что означает эта команда?
        int     21h
        mov     ax, 4C00h            5. Что означает эта команда?
        int     21h    


6. В каком месте программы мы ставим задержку экрана до нажатия любой клавиши

7 - самый главный: Это и есть перевод числа в строку или это  только распечатка числа?

Это сообщение отредактировал(а) Alexeis - 7.5.2007, 15:38
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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