Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2018, 15:24   #1
Егоров
 
Регистрация: 08.05.2018
Сообщений: 6
По умолчанию Нужно организовать ввод данных и сделать вывод задания в консоле (выражения)

Вот код
Код:
format PE console 4.0
entry start
 
include 'win32ax.inc'
 
section '.text' code readable executable
 
  start:
 
        ; получение описателей ввода и вывода консоли
        invoke  GetStdHandle,   STD_INPUT_HANDLE
        mov     [hConsoleInput],        eax
 
        invoke  GetStdHandle,   STD_OUTPUT_HANDLE
        mov     [hConsoleOutput],       eax
 
        mov     eax,    [L]     ;(L-A)^2
        sub     eax,    [A]
        imul    eax
 
        idiv    dword [C]       ;(L-A)^2 / C
 
        add     eax,    [K]     ;(L-A)^2 / C + K
        sub     eax,    [L]     ;(L-A)^2 / C + K - L
 
        mov     ebx,    eax
 
        mov     eax,    [C]     ; C/2
        cdq
        mov     ecx,    2
        idiv    ecx
 
        add     eax,    ebx     ;(L-A)^2 / C + K - L + C/2
 
        mov     [Result],       eax
        cinvoke printf, aszFmt, [Result]
        ;ожидание нажатия ENTER
        cinvoke printf, aszPressEnter
        invoke  ReadConsole, [hConsoleInput], Buffer,\
                100, BufLen, NULL
        invoke  ExitProcess, 0
 
section '.data' data readable writeable
        aszFmt  db      'Result=%d', 0Dh, 0Ah, 0
        aszPressEnter   db      0Dh, 0Ah, 0Dh, 0Ah, "Press ENTER to exit", 0
 
        A               dd      2
        L               dd      10
        C               dd      4
        K               dd      12
 
section '.bss' readable writeable
        Buffer          db      1024 dup(?)
        BufLen          dd      ?
        hConsoleOutput  dd      ?
        hConsoleInput   dd      ?
 
        Result          dd      ?
 
section '.idata' import data readable writeable
 
        library kernel32,'KERNEL32.DLL',\
                user32,'USER32.DLL',\
                msvcrt, 'msvcrt.dll'
 
        include 'api\kernel32.inc'
        include 'api\user32.inc'
        import  msvcrt,\
                printf, 'printf'

Ос: window 7 32 bit, код был написан в FASM
Выражение: (L-A)^2 / C + K - L + C/2

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 08.05.2018 в 15:54.
Егоров вне форума Ответить с цитированием
Старый 08.05.2018, 15:28   #2
Егоров
 
Регистрация: 08.05.2018
Сообщений: 6
По умолчанию Нужно организовать ввод данных через консоль

Ос: window 7 32 bit, код был написан в FASM
Вот код
Вложения
Тип файла: txt Новый текстовый документ (9).txt (1.9 Кб, 158 просмотров)
Егоров вне форума Ответить с цитированием
Старый 08.05.2018, 16:01   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Код:
        cinvoke printf, var_A_Fmt, [A]
        cinvoke printf, var_L_Fmt, [L]
        cinvoke printf, var_C_Fmt, [C]
        cinvoke printf, var_K_Fmt, [K]

        mov     [Result],       eax
        cinvoke printf, aszFmt, [Result]
....

section '.data' data readable writeable
        aszFmt  db      'Result=%d', 0Dh, 0Ah, 0
        var_A_Fmt  db      'A=%d', 0Dh, 0Ah, 0
        var_L_Fmt  db      'L=%d', 0Dh, 0Ah, 0
        var_C_Fmt  db      'C=%d', 0Dh, 0Ah, 0
        var_K_Fmt  db      'K=%d', 0Dh, 0Ah, 0
....
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.05.2018, 16:31   #4
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
По умолчанию

Ввод:
Код:
cinvoke scanf, scanfmt, x
Код:
scanfmt db '%d',0
x rd 1
в конце:
Код:
        import  msvcrt,\
                printf, 'printf',\
                scanf, 'scanf'
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
7in вне форума Ответить с цитированием
Старый 08.05.2018, 19:07   #5
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Егоров Посмотреть сообщение
Нужно организовать ввод данных
Код:
format  PE console
include 'win32ax.inc'
include 'api\kernel32.inc'
entry   start

section '.data' code readable writable
m0    db   'Input A: ',0
m1    db   '------------------',13,10
      db   '(B-A)^2/C+D-B+C/2',13,10
      db   'Result : ',0
A     dd   0
B     dd   0
C     dd   0
D     dd   0

section '.code' code readable executable
start:
; Ввод данных
       mov      ecx,4          ; кол-во запросов
       mov      ebx,m0         ;
       mov      esi,A          ;
@01:   push     ecx            ;
       cinvoke  printf,<'%s'>, ebx
       cinvoke  scanf, <'%d'>, esi
       inc      byte[ebx+6]    ; меняем букву по-алфавиту
       add      esi,4          ; сл.буфер..
       pop      ecx            ;
       loop     @01            ; ввод юзера в переменных ABCD

; Считаем выражение: (B-A)^2/C+D-B+C/2
; (оставил твой вариант)
       mov      eax,[B]
       sub      eax,[A]
       imul     eax
       xor      edx,edx
       idiv     dword[C]
       add      eax,[D]
       sub      eax,[B]
       shr      dword[C],1
       add      eax,[C]
       push     eax

; Вывод результата
       cinvoke  printf,<'%s'>, m1
       pop      eax
       cinvoke  printf,<'%d'>, eax

       jmp  $
       invoke   ExitProcess, 0
;-------------------------------------
section '.idata' import data readable
library kernel32,'kernel32.dll',\
        msvcrt,  'msvcrt.dll'

import  msvcrt,\
        printf,  'printf',\
        scanf,   'scanf'
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файловый ввод/вывод в языке С: Организовать текстовый файл f, состоящий из N строк. Организовать замену слов в файле. Анастасия_А Помощь студентам 3 28.03.2016 14:32
нужно организовать динамическое выделение памяти через ** и файловый ввод - вывод anybkarnak Помощь студентам 4 11.06.2010 21:33
Degree d^n, как организовать ввод\вывод? sig_GB Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 15 21.04.2010 20:29
Организовать ввод данных с файла созданного в первом задании и вывод их терминал. Saniok Помощь студентам 2 25.10.2007 22:25