powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Assembler, переписать числа в файле словами
25 сообщений из 45, страница 1 из 2
Assembler, переписать числа в файле словами
    #38869681
sinne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на ассемблере надо в текстовом файле поменят цифры на соответствующие им слова, тоесть 112 - один один два. нужна помощь в этом деле. и еще вопрос: как в ассемблере заносить слова в массив? язык практически не изучал, так что прошу помощи. есть код на си, но он вряд ли поможет
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869737
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sinne, есть одно сильное колдунство. Оно позволяет во время "С" компилляции
получить (внезапно) исходник на ассемблере.
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869753
sinne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, я знаю об этом колдовстве, но оно мне не подходит, так как такой код очень легко вычислить, а мне нужно чисто ассемблерский код
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869755
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sinne, ассемблеры разные бывают.

Каким ты пользуешся. TASM, MASM, FASM?
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869757
sinne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, турбо ассемблер
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869765
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если честно то не помню как там массивы строк. Но я-бы сделал так.
Код: plaintext
1.
2.
3.
4.
5.
message0 db 'Ноль',0 
message1 db 'Один',0 
message2 db 'Два',0
...
message9 db 'Девять',0


А потом как-то значить надо создать массивчик и напихать в него offset-ы этих сообщений.
Получиться мапа. Ну а дальше - хехе... дело техники.
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869773
sinne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, ну с этим то как раз проблема))
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869777
sinne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
напихать в него offset-ы этих сообщений...а можно подсказку, как это сделать?))
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869779
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sinnemayton, ну с этим то как раз проблема))
У тебя хелоу ворд есть на ТурбоАсме?
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869782
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько мне изменяет склероз:
Код: asm
1.
2.
3.
digit_0 db "Ноль", 0
;offs_0 dw OFFSET digit_0
;mov BX, OFFSET digit_0
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869791
sinne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov, не совсем понял что делают строчки в комментах
как объявить массив оффсетов?
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869803
sinne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, ну с одним числом у меня получилось, хоть и каряво, а как занести несколько сообщений в масив чтобы записать его в файл я не пойму..
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869806
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sinne, дай заготовку которая у тебя компилируется и работает хотя-бы без падений.
Мы ее допилим. Чесслово я вобще не помню как в ассемблере файлы открывают
и на экран чего-то выводя. Этож такая кастомизация чел. Ни одна голова не упомнит.
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869833
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sinneна ассемблере надо в текстовом файле поменят цифры на соответствующие им слова,
Крайне советую применить unix-way, в смысле читать стандартный вход и писать стандартный выход. Преподу всегда можно показать, как это применяется для работы с файлами, а по сути программа получится в десять раз проще и по сути станет циклом "прочитать символ ... записать один из одиннадцати вариантов".
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869836
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обеими руками "за" unix-way. Только смущает фраза "Турбо-Ассэмблэр".
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869895
sinne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, не совсем то, что нужно, но по крайней мере создает файл и что-то делает)

.8086
.MODEL SMALL
.STACK 100h

.DATA
Count EQU 1

Buffer DB 80, ?, 80 DUP (' ')
Number DB 80, ?, 80 DUP (' ')

mas dw a0,a1,a2,a3
a0 db 'zero', 0
a1 db 'one', 0
a2 db 'two',0
a3 db 'three',0

ms dw ?

Handle DW ?

InputFile DB 'input.txt', 0
OutputFile DB 'words.txt', 0
message1 DB 'Data input->', 0dh, 0ah, '$'
message2 DB 'Error!!', 0dh, 0ah, '$'
message3 DB 'Data output->', 0dh, 0ah, '$'
CRLF DB 0dh, 0ah, '$'

.CODE
.STARTUP
LOCALS
call CreateFile
call WriteFile
call CloseFile

call OpenFile
call ReadFile
call CloseFile

;вывод на экран
mov ah, 9h
lea dx, Number
int 21h

;создания выходного файла
mov ah, 3ch
mov cx, 0
lea dx, OutputFile
int 21h
mov Handle, ax ; дескриптор файла



__________________________________________________
;запись в файл

mov ah, 40h
mov bx, Handle
mov cx, 7
lea dx, ms
int 21h


call CloseFile


;ReadOnly for InputFile
mov ax, 4301h
mov dx, offset InputFile
mov cx, 1 ;1 - ReadOnly, 2 - Hidden
int 21h

;ReadOnly for OutputFile
mov ax, 4301h
mov dx, offset OutputFile
mov cx, 1 ;1 - ReadOnly, 2 - Hidden
int 21h

.EXIT 0
;----------------------------------------------------------------------------------------
CreateFile Proc Near
mov ah, 3ch
mov cx, 0 ; атрибут=0
lea dx, InputFile
int 21h
jc @@1
mov Handle, ax ; дескриптор файла
ret
@@1: call Error
ret
CreateFile endp
;----------------------------------------------------------------------------------------
WriteFile Proc Near

lea dx, message1
mov ah, 9h
int 21h

mov cx, Count
@@1:
push cx

; очистка буфера
mov al,' '
push ds
pop es
mov di, offset buffer+2
mov cx, 80
cld
rep stosb

; чтение строки с клавиатуры
mov ah, 0ah
lea dx, Buffer
int 21h

; переход на новую строку
mov ah, 9h
lea dx, CRLF
int 21h

; конец строки в буфере-символ CR с кодом 0dh
; символ LF (0ah) после символа 0dh (переход на новую строку)
mov al, 0ah
push ds
pop es
mov di, offset Buffer+2
xor bx, bx
mov bl, Byte Ptr [Buffer+1] ; количество символов
add di, bx
inc di
stosb

; si – к-во символов + 2 (0dh,0ah)
mov si, bx
add si, 2

; запись строки в файл
mov ah, 40h
mov bx, Handle
mov cx, si
lea dx, Buffer+2
int 21h

jnc @@2
call Error
@@2:
pop cx
loop @@1
ret
WriteFile endp
;----------------------------------------------------------------------------------------
CloseFile Proc Near
mov ah, 3eh
mov bx, Handle
int 21h
ret
CloseFile endp
;----------------------------------------------------------------------------------------
OpenFile Proc Near
mov ah, 3dh
mov al, 0; режим: 0- read, 1- write, 2-read/write
mov cx, 0; атрибут файла
lea dx, InputFile
int 21h
jc @@1
mov Handle, ax
ret
@@1: call Error
ret
OpenFile endp
;----------------------------------------------------------------------------------------





ReadFile Proc Near

lea dx, message3
mov ah, 9h
int 21h

xor di, di
@@1: xor si, si

@@2:
; чтение с файла
lea dx, Buffer+2
add dx, si
mov ah, 3fh
mov bx, Handle
mov cx, 1 ; к-во символов для чтения
int 21h

jc @@3
cmp ax, 0 ;EOF?
je @@4
inc si
_______________________________________________________
cmp Byte Ptr Buffer[si+2-1], 30h ;0
je @@5

;cmp Byte Ptr Buffer[si+2-1], 31h ;1
;je @@6

;cmp Byte Ptr Buffer[si+2-1], 32h
;je @@7

;cmp Byte Ptr Buffer[si+2-1], 33h
;je @@8

;cmp Byte Ptr Buffer[si+2-1], 34h
;je @@9

;cmp Byte Ptr Buffer[si+2-1], 35h
;je @@10

;cmp Byte Ptr Buffer[si+2-1], 36h
;je @@11

;cmp Byte Ptr Buffer[si+2-1], 37h
;je @@12

;cmp Byte Ptr Buffer[si+2-1], 38h ;8
;je @@13

;cmp Byte Ptr Buffer[si+2-1], 39h ;9
;je @@14

jmp @@1

___________________________________________________
; если ноль
@@5:
mov dx,mas[0]
mov ms[di],dx




jmp @@1

@@3: call Error
@@4: ret
ReadFile endp

;----------------------------------------------------------------------------------------
Error Proc Near
mov ah, 9h
lea dx, message2
int 21h
ret
Error endp
;----------------------------------------------------------------------------------------
END

...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869911
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОбеими руками "за" unix-way. Только смущает фраза "Турбо-Ассэмблэр".
оффтоп: "преподаватели" освоят когда-нибудь нечто отличное от 8086 и MSDOS?
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869912
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилоффтоп: "преподаватели" освоят когда-нибудь нечто отличное от 8086 и MSDOS?
Зачем? Для ассемблера самое то. Если мы говорим именно об "ассемблер для чайников", а не о системотехниках итп.
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869914
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЗачем? Для ассемблера самое то. Если мы говорим именно об "ассемблер для чайников", а не о системотехниках итп.
а если о вычислениях?
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869915
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилsoftwarerЗачем? Для ассемблера самое то. Если мы говорим именно об "ассемблер для чайников", а не о системотехниках итп.
а если о вычислениях?
А если о вычислениях, то ассемблер нынче - последнее, где я буду искать прибавку скорости. И то скорее всего окажется, что интеловские компиляторы оптимизируют уже круче, чем я.
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869920
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerИзопропилоффтоп: "преподаватели" освоят когда-нибудь нечто отличное от 8086 и MSDOS?
Зачем? Для ассемблера самое то. Если мы говорим именно об "ассемблер для чайников", а не о системотехниках итп.Затем, что это реально существующий процессор и реально существующая ОС.
Обучать лучше на основе MIPS, и сам язык намного проще и есть вполне симпатичные эмуляторы которые просто запустил, загрузил в них исходник и гоняй себе хоть целиком, хоть пошагово. Этого вполне хватит чтобы почувствовать вкус регистровой жизни.
А тот же Turbo Assembler работает только с бинарником. Значит надо отдельный компилятор, и надо MS DOS ставить. На современных машинах это возможно только через DOSBox, значит еще и с ним разбираться... Для профильных студентов это вполне нормально, а для всех остальных - смерти подобно.

Писать учебные программы под MS DOS можно конечно, но как-то уж очень бесперспективно. Хотя конечно для серьезного программирования знать x86 (ну или хотя-бы Z80) надо. Просто чтобы понимать что такое регистры жесткого назначения.
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869924
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerА если о вычислениях, то ассемблер нынче - последнее, где я буду искать прибавку скорости. И то скорее всего окажется, что интеловские компиляторы оптимизируют уже круче, чем я.
так ассемблер - это для понимания того то творит компилятор, SSE команды в частности.
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869926
sinne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может все таки кто-то мне поможет?)) я сам не в восторге, но сделать то надо)
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869927
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlЗатем, что это реально существующий процессор и реально существующая ОС.
Обучать лучше на основе MIPS,
Я пожалуй что за реально существующий процессор и реально существующую ОС.
...
Рейтинг: 0 / 0
Assembler, переписать числа в файле словами
    #38869978
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sinne,

Погугли старенькую книгу Питера Абеля по ассемблеру. Самое то, что тебе нужно - там достаточно много готовых примеров. Правда и опечаток (в моем бумажном варианте мохнатого года выпуска) хватает.
...
Рейтинг: 0 / 0
25 сообщений из 45, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Assembler, переписать числа в файле словами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]