Форум программистов, компьютерный форум, киберфорум
Assembler: Windows/protected mode
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/40: Рейтинг темы: голосов - 40, средняя оценка - 4.98
1 / 1 / 0
Регистрация: 01.10.2017
Сообщений: 56
1
FASM

Ввод и вывод данных на консоль (fasm)

06.12.2018, 20:01. Показов 8109. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно дополнить код ,что бы значение string и raz вводил с клавиатуры,а результат просто выводился на консоль (т.е itog)
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
format PE console
entry start
include 'C:\Program Files\ass\include\win32ax.inc'
String db 'A,b;c.d:g',0
 
Raz db ',;.:',0
itog db ?
 
start:
mov edx,0
mov ecx,9
start1:
mov ebx,ecx
dec ebx
mov esi,0
mov edi,ecx ;сохр счетчик
mov ecx,4
start2:
dec ecx
mov al,[Raz+ecx]
cmp [String+ebx],al
je r1
r2:
inc ecx
 
loop start2
mov ecx,edi
cmp esi,0
je r3
r4:
loop start1
mov al,[itog]
mov ah,[itog+1]
mov bh,[itog+2]
mov bl,[itog+3]
ret
;-------
r1:
inc esi
jmp r2
;--------
r3:
mov al,[String+ebx]
mov [itog+edx],al
inc edx
jmp r4
Добавлено через 24 секунды
Спасибо!

Добавлено через 45 минут
Вот что сделал,но почему не может ввести разделили(Raz) ,в чем ошибка ?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
format PE console 4.0
 
include 'C:\Program Files\ass\include\win32ax.inc'
start:  cinvoke printf,  req1, 41h   ; ????? ?? ?????
    cinvoke scanf, tpt, String       ; ???? A
    cinvoke printf,  req2, 41h   ; ????? ?? ?????
    cinvoke scanf, tpt, Raz      ; ???? B
 
mov edx,0
mov ecx,9
start1:
mov ebx,ecx
dec ebx
mov esi,0
mov edi,ecx ;сохр счетчик
mov ecx,4
start2:
dec ecx
mov al,[Raz+ecx]
cmp [String+ebx],al
je r1
r2:
inc ecx
 
loop start2
mov ecx,edi
cmp esi,0
je r3
r4:
loop start1
mov al,[itog]
mov ah,[itog+1]
mov bh,[itog+2]
mov bl,[itog+3]
ret
;-------
r1:
inc esi
jmp r2
;--------
r3:
mov al,[String+ebx]
mov [itog+edx],al
inc edx
jmp r4
 
    cinvoke printf, tpo, edx
    invoke  sleep, 5000     ; 5 sec. delay
; ?????
gtfo:   invoke  exit, 0
req1 db  'Enter String:',0
req2 db  'Enter Raz:',0
tpo db  'Itog'
tpt db  '%d',0
 
 
String db 'A,b;c.d:g',0
Raz db ',;.:',0
itog db ?
 
; import data in the same section
 data import
 
 library msvcrt,'MSVCRT.DLL',\
    kernel32,'KERNEL32.DLL'
 
 import kernel32,\
    sleep,'Sleep'
 
 import msvcrt,\
    puts,'puts',\
    scanf,'scanf',\
        printf,'printf',\
    exit,'exit'
end data
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2018, 20:01
Ответы с готовыми решениями:

Ввод в консоль адрес файла и вывод содержимое на экран
Все привет. Есть пример программы "Консольное приложение, выводящее на консоль файл" нужно...

Ввод и вывод строковых данных на консоль
Здравствуйте! Подскажите по коду, что можно переделать или добавить? Задание: public class...

Одновременный ввод/вывод данных в консоль - СИ
Необходимо сделать одновременный вывод и ввод данных в консоли. Должно получиться, что-то на...

Ввод и вывод данных на консоль четных и нечетных чисел
Здравствуйте! Подскажите по коду, что можно переделать или добавить? Задача: Создать программу,...

3
Эксперт Hardware
Эксперт Hardware
6103 / 2347 / 390
Регистрация: 29.07.2014
Сообщений: 3,108
Записей в блоге: 4
06.12.2018, 20:37 2
так в чём именно проблема-то? что нужно сделать с вводом - умножить/разделить и что?
0
1 / 1 / 0
Регистрация: 01.10.2017
Сообщений: 56
06.12.2018, 20:41  [ТС] 3
R71MT, нужно ввести строку и разделитель , в итоге должна быть обычная строка без разделителей

Добавлено через 35 секунд
по коду не понятно ?
0
Эксперт Hardware
Эксперт Hardware
6103 / 2347 / 390
Регистрация: 29.07.2014
Сообщений: 3,108
Записей в блоге: 4
06.12.2018, 21:15 4
Лучший ответ Сообщение было отмечено Nord0102033 как решение

Решение

Цитата Сообщение от Nord0102033 Посмотреть сообщение
по коду не понятно ?
нет..
используй ReadConsole, т.к. scanf читает до первого пробела

Добавлено через 1 минуту
хотя можно и puts, который у тебя есть уже в импорте

Добавлено через 8 минут
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
; stdOut(7), stdIn(3)
;---------------------------
format    pe  console
include   'win32ax.inc'
.data
mes0    db   'Type string:  '
L0      dd   $ - mes0
size    dd   0                ; реальная длина ввода
buff    db   80 dup(0)        ; буфер для строки
 
.code
start:  invoke   WriteConsoleA, 7, mes0, [L0], 0, 0
        invoke   ReadConsoleA, 3, buff, 80, size, 0     ; макс.80-символов
        invoke   ExitProcess,0
.end start
1
06.12.2018, 21:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2018, 21:15
Помогаю со студенческими работами здесь

[FASM] Вывод в консоль каждый парный символ
Здравствуйте, помогите пожалуйста с выводом каждого второго символа, не могу вообще раздуплиться......

FASM вывод текста в консоль из локальной переменной
Доброго дня. Хотелось бы для себя понять возможно ли в принципе вывести текст из локальной...

[FASM] Вывод в консоль каждого парного символа
format PE64 Console 5.0 entry Start include 'win64a.inc' section '.text' code readable...

Ввод с клавиатуры и вывод на экран чисел в Windows
format PE console include 'win32ax.inc' start: mov EAX, 5d mov EBX, 6d ADD EAX, EBX ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru