На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Вывод числа с плавающей запятой
    После выполнения операций в FPU получил результат - число с плавающей точкой. Как вывести его на экран?
      Посмотри здесь

      http://forum.vingrad.ru/faq/topic-158522/kw-ввод-вывод-числа.html

      http://forum.vingrad.ru/forum/topic-249868.html
        Большое спасибо...
        Вопрос в догонку - есть у меня эта процедура, нужно её запихнуть в библиотеку процедур (или с внешним вызовом (.LIB), или как макрокоманду, или как файл дерективы INCLUDE). Подскажите пожалуйста что проще, а если подкините примерчик - буду очень благодарен.
        TASM.
        Сообщение отредактировано: lexei -
          Если это разовая работа (лабораторка и иже с нею), то можно как прописать в тексте программы, так и вставить INCLUDOM.
          Вот пример для Tasm:
          ExpandedWrap disabled
            model medium
            .386
            .stack  1024
            .data
             
            CRLF    db      0Dh, 0Ah, '$'
             
            fVar01  dd      3.14159265
            fVar02  dd      2.0
             
            .code
            Main    PROC    FAR
                    mov     ax, @data
                    mov     ds, ax
             
                    fld     fVar01            ;загрузить в ST содержимое переменной fVar01
                    fmul    fVar02            ;какие-то математические действия -> результат в ST
                    call    OutFloat          ;вывести содержимое ST (вершины стека сопроцессора) на экран
             
                    mov     ax, 4C00h
                    int     21h
            Main    ENDP
             
            ;здесь или вставить копированием текст процедуры OutFloat
            ;или INCLUDE FileName.inc
            .............................
                    END     Main


          Можно и раздельно компилировать два файла. Тогда
          ExpandedWrap disabled
            :первый файл main.asm
            model medium
            .386
            .stack  1024
            .data
             
            CRLF    db      0Dh, 0Ah, '$'
             
            fVar01  dd      3.14159265
            fVar02  dd      2.0
             
            .code
             
                    EXTRN   OutFloat     : NEAR   ; <--- описание внешней процедуры
            Main    PROC    FAR
                    mov     ax, @data
                    mov     ds, ax
             
                    fld     fVar01            ;загрузить в ST содержимое переменной fVar01
                    fmul    fVar02            ;какие-то математические действия -> результат в ST
                    call    OutFloat          ;вывести содержимое ST (вершины стека сопроцессора) на экран
             
                    mov     ax, 4C00h
                    int     21h
            Main    ENDP
                    END     Main
             
            ;второй файл OutFloat.asm
            model medium
            .386
            .code
                    PUBLIC  OutFloat        ; <--- объявление для "общего" доступа из других файлов проекта
            ...............................
            текст процедуры OutFloat
            ...............................
                    END
             
            компилировать
            tasm main.asm
            tasm OutFloat.asm
            Собирать
            tlink main.obj + outfloat.obj

          Почти также и действия при работе с LIB.

          А макросом, imho, в данном случае можно выполнить лишь вызов процедуры для печати переменной из памяти
          ExpandedWrap disabled
            mShowFloat MACRO MemVar
                 fld   MemVar
                 call  OutFloat
            ENDM
            Большое спасибо
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0253 ]   [ 15 queries used ]   [ Generated: 3.05.24, 02:54 GMT ]