|
|
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
на ассемблере надо в текстовом файле поменят цифры на соответствующие им слова, тоесть 112 - один один два. нужна помощь в этом деле. и еще вопрос: как в ассемблере заносить слова в массив? язык практически не изучал, так что прошу помощи. есть код на си, но он вряд ли поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 17:07 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
sinne, есть одно сильное колдунство. Оно позволяет во время "С" компилляции получить (внезапно) исходник на ассемблере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 18:08 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
mayton, я знаю об этом колдовстве, но оно мне не подходит, так как такой код очень легко вычислить, а мне нужно чисто ассемблерский код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 18:31 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
sinne, ассемблеры разные бывают. Каким ты пользуешся. TASM, MASM, FASM? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 18:32 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
mayton, турбо ассемблер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 18:35 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
Если честно то не помню как там массивы строк. Но я-бы сделал так. Код: plaintext 1. 2. 3. 4. 5. А потом как-то значить надо создать массивчик и напихать в него offset-ы этих сообщений. Получиться мапа. Ну а дальше - хехе... дело техники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 18:42 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
mayton, ну с этим то как раз проблема)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 18:47 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
напихать в него offset-ы этих сообщений...а можно подсказку, как это сделать?)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 18:51 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
sinnemayton, ну с этим то как раз проблема)) У тебя хелоу ворд есть на ТурбоАсме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 18:52 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
Насколько мне изменяет склероз: Код: asm 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 18:55 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, не совсем понял что делают строчки в комментах как объявить массив оффсетов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 19:14 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
mayton, ну с одним числом у меня получилось, хоть и каряво, а как занести несколько сообщений в масив чтобы записать его в файл я не пойму.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 19:36 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
sinne, дай заготовку которая у тебя компилируется и работает хотя-бы без падений. Мы ее допилим. Чесслово я вобще не помню как в ассемблере файлы открывают и на экран чего-то выводя. Этож такая кастомизация чел. Ни одна голова не упомнит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 19:38 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
sinneна ассемблере надо в текстовом файле поменят цифры на соответствующие им слова, Крайне советую применить unix-way, в смысле читать стандартный вход и писать стандартный выход. Преподу всегда можно показать, как это применяется для работы с файлами, а по сути программа получится в десять раз проще и по сути станет циклом "прочитать символ ... записать один из одиннадцати вариантов". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 20:35 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
Обеими руками "за" unix-way. Только смущает фраза "Турбо-Ассэмблэр". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 20:41 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 22:31 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
maytonОбеими руками "за" unix-way. Только смущает фраза "Турбо-Ассэмблэр". оффтоп: "преподаватели" освоят когда-нибудь нечто отличное от 8086 и MSDOS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 23:08 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
Изопропилоффтоп: "преподаватели" освоят когда-нибудь нечто отличное от 8086 и MSDOS? Зачем? Для ассемблера самое то. Если мы говорим именно об "ассемблер для чайников", а не о системотехниках итп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 23:09 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
softwarerЗачем? Для ассемблера самое то. Если мы говорим именно об "ассемблер для чайников", а не о системотехниках итп. а если о вычислениях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 23:20 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
ИзопропилsoftwarerЗачем? Для ассемблера самое то. Если мы говорим именно об "ассемблер для чайников", а не о системотехниках итп. а если о вычислениях? А если о вычислениях, то ассемблер нынче - последнее, где я буду искать прибавку скорости. И то скорее всего окажется, что интеловские компиляторы оптимизируют уже круче, чем я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 23:25 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
softwarerИзопропилоффтоп: "преподаватели" освоят когда-нибудь нечто отличное от 8086 и MSDOS? Зачем? Для ассемблера самое то. Если мы говорим именно об "ассемблер для чайников", а не о системотехниках итп.Затем, что это реально существующий процессор и реально существующая ОС. Обучать лучше на основе MIPS, и сам язык намного проще и есть вполне симпатичные эмуляторы которые просто запустил, загрузил в них исходник и гоняй себе хоть целиком, хоть пошагово. Этого вполне хватит чтобы почувствовать вкус регистровой жизни. А тот же Turbo Assembler работает только с бинарником. Значит надо отдельный компилятор, и надо MS DOS ставить. На современных машинах это возможно только через DOSBox, значит еще и с ним разбираться... Для профильных студентов это вполне нормально, а для всех остальных - смерти подобно. Писать учебные программы под MS DOS можно конечно, но как-то уж очень бесперспективно. Хотя конечно для серьезного программирования знать x86 (ну или хотя-бы Z80) надо. Просто чтобы понимать что такое регистры жесткого назначения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 23:35 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
softwarerА если о вычислениях, то ассемблер нынче - последнее, где я буду искать прибавку скорости. И то скорее всего окажется, что интеловские компиляторы оптимизируют уже круче, чем я. так ассемблер - это для понимания того то творит компилятор, SSE команды в частности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 23:44 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
может все таки кто-то мне поможет?)) я сам не в восторге, но сделать то надо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 23:46 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
White OwlЗатем, что это реально существующий процессор и реально существующая ОС. Обучать лучше на основе MIPS, Я пожалуй что за реально существующий процессор и реально существующую ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 23:48 |
|
||
|
Assembler, переписать числа в файле словами
|
|||
|---|---|---|---|
|
#18+
sinne, Погугли старенькую книгу Питера Абеля по ассемблеру. Самое то, что тебе нужно - там достаточно много готовых примеров. Правда и опечаток (в моем бумажном варианте мохнатого года выпуска) хватает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2015, 03:05 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38869806&tid=1341093]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
92ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 531ms |

| 0 / 0 |
