Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите плз...

16K
26 апреля 2006 года
WhiteDevil
11 / / 26.04.2006
Горю с зачетной(( Никак не получается 2 проги.
Помогите плззз
№1
Дан txt файл с информацией в виде целых чисел.
Найти и записать в этот же файл среднее арифметическое этих чисел, а затем вывести на экран и числа и среднее арифметическое.
№2
Дан txt файл с информацией в виде чисел и букв.
Вывести на экран сначала всю информацию файла, а потом тоже самое токо задом наперед.

Заранее огромное спасибо.
Очень прошу помочь...
5.3K
26 апреля 2006 года
r000n_m
177 / / 26.02.2006
assembler?
Использовать прерывания DOS?
16K
26 апреля 2006 года
WhiteDevil
11 / / 26.04.2006
Цитата:
Originally posted by r000n_m
assembler?
Использовать прерывания DOS?






Да Ассемблер.Прерывания использовать необязательно.Прошу сделать простенько, чтобы смог объяснить.
Спасибо что взялся.

5.3K
26 апреля 2006 года
r000n_m
177 / / 26.02.2006
А что именно не получается?

P.S. Как можно открыть файл без прерываний?
16K
26 апреля 2006 года
WhiteDevil
11 / / 26.04.2006
Цитата:
Originally posted by r000n_m
А что именно не получается?

P.S. Как можно открыть файл без прерываний?






Не получается сделать.Я пару раз пробовал, но безуспешно((
Времени нету да и не силен я в Ассеме.
Значит с прерываниями(вот видишь как не силен)
Помоги плизззз
Очень надо.Прям позарез.

5.3K
26 апреля 2006 года
r000n_m
177 / / 26.02.2006
Понимаешь, у меня тоже...времени не густо... Давай я помогу, но советами.

Файловые функции(все через int 21h):
1.Функция DOS Fn 3cH - создать файл через описатель
2. DOS Fn 3dH: открыть описатель файла
3. DOS Fn 3eH: Закрыть описатель файла
4. DOS Fn 3fH: читать файл через описатель
5. DOS Fn 40H: писать в файл через описатель
6. DOS Fn 41H: Удалить файл
7. DOS Fn 42H: установить указатель файла -- LSEEK
Этого, в принципе, должно хватить.

Сам файл создавать не будем, ну его :) Будем считать, что он уже есть.
;----------открытие---------------------
datasegment segment para public 'data'
NameFile db 'c:\myfile.txt',0
Handle dw 0
datasegment ends

codesegment segment para public 'code'
assume cs:codesegment, ds:datasegment, ss:stacksegment
start:
mov ax,datasegment
mov ds,ax

mov ah,3dh
mov dx,offset NameFile
mov al,2;r/w
int 21h
jc ErrorOpening
;not error
mov Handle,ax;received handle
;......
ErrorOpening:
;......

;-------- exit ----
mov ax,4c00h
int 21h
;------------------

codesegment ends

end start
;----------------------------
Стоп. теперь нужно уточнение. Приведи пример файла с данными или хотя бы скажи: 1. Для 1-го:какая длина каждого числа,

сколько чисел на строке, чем разделены числа; 2.Во втором задании нужно просто прочитать и вывести на

экран файл по байтам от начала к концу и от конца к началу?
16K
27 апреля 2006 года
WhiteDevil
11 / / 26.04.2006
Цитата:
Originally posted by r000n_m
Понимаешь, у меня тоже...времени не густо... Давай я помогу, но советами.

Файловые функции(все через int 21h):
1.Функция DOS Fn 3cH - создать файл через описатель
2. DOS Fn 3dH: открыть описатель файла
3. DOS Fn 3eH: Закрыть описатель файла
4. DOS Fn 3fH: читать файл через описатель
5. DOS Fn 40H: писать в файл через описатель
6. DOS Fn 41H: Удалить файл
7. DOS Fn 42H: установить указатель файла -- LSEEK
Этого, в принципе, должно хватить.

Сам файл создавать не будем, ну его :) Будем считать, что он уже есть.
;----------открытие---------------------
datasegment segment para public 'data'
NameFile db 'c:\myfile.txt',0
Handle dw 0
datasegment ends

codesegment segment para public 'code'
assume cs:codesegment, ds:datasegment, ss:stacksegment
start:
mov ax,datasegment
mov ds,ax

mov ah,3dh
mov dx,offset NameFile
mov al,2;r/w
int 21h
jc ErrorOpening
;not error
mov Handle,ax;received handle
;......
ErrorOpening:
;......

;-------- exit ----
mov ax,4c00h
int 21h
;------------------

codesegment ends

end start
;----------------------------
Стоп. теперь нужно уточнение. Приведи пример файла с данными или хотя бы скажи: 1. Для 1-го:какая длина каждого числа,

сколько чисел на строке, чем разделены числа; 2.Во втором задании нужно просто прочитать и вывести на

экран файл по байтам от начала к концу и от конца к началу?







длина чисел небольшая от 1 - 10. Между числами пробелы.
Да сначала выводится содержание файла, а потом тоже самое токо задом наперед.

5.3K
27 апреля 2006 года
r000n_m
177 / / 26.02.2006
Номер 2 готов.
;---------- 2 ---------------------
stacksegment segment para stack 'stack'
dw 10h dup(?)
stacksegment ends

datasegment segment para public 'data'
NameFile db 'c:\myfile.txt',0
Handle dw 0
buffer db 0
datasegment ends

codesegment segment para public 'code'
assume cs:codesegment, ds:datasegment, ss:stacksegment
start:
mov ax,datasegment
mov ds,ax

mov ah,3dh
mov dx,offset NameFile
mov al,2;r/w
int 21h
jc ErrorOpening
;not error
mov Handle,ax;received handle

my_loop:
mov ah,3fh
mov bx,Handle
mov dx,offset buffer
mov cx,1
int 21h
jc ErrorReading
cmp ax,cx
jl EndOfFile
;readed 1 byte from file successfully
mov ah,06h
mov dl,buffer
int 21h
jmp my_loop

EndOfFile:

my_loop_2:

mov ah,42h
mov bx,Handle
mov cx,0FFFFh;
mov dx,0FFFEh; moving on -1
mov al,1
int 21h
jc SeekError


mov ah,3fh
mov bx,Handle
mov dx,offset buffer
mov cx,1
int 21h
jc ErrorReading
cmp ax,cx
jl EndOfFile_2
;readed 1 byte from file successfully
mov ah,06h
mov dl,buffer
int 21h
jmp my_loop_2

EndOfFile_2:

SeekError:
;......
ErrorReading:
;......
ErrorOpening:
;......

mov ah,3eh
mov bx,Handle
int 21h

;-------- exit ----
mov ax,4c00h
int 21h
;------------------

codesegment ends

end start
;---------------------------
P.S. в первом номере числа однозначные (0..9) и на одной строке?
16K
28 апреля 2006 года
WhiteDevil
11 / / 26.04.2006
Цитата:
Originally posted by r000n_m
Номер 2 готов.
;---------- 2 ---------------------
stacksegment segment para stack 'stack'
dw 10h dup(?)
stacksegment ends

datasegment segment para public 'data'
NameFile db 'c:\myfile.txt',0
Handle dw 0
buffer db 0
datasegment ends

codesegment segment para public 'code'
assume cs:codesegment, ds:datasegment, ss:stacksegment
start:
mov ax,datasegment
mov ds,ax

mov ah,3dh
mov dx,offset NameFile
mov al,2;r/w
int 21h
jc ErrorOpening
;not error
mov Handle,ax;received handle

my_loop:
mov ah,3fh
mov bx,Handle
mov dx,offset buffer
mov cx,1
int 21h
jc ErrorReading
cmp ax,cx
jl EndOfFile
;readed 1 byte from file successfully
mov ah,06h
mov dl,buffer
int 21h
jmp my_loop

EndOfFile:

my_loop_2:

mov ah,42h
mov bx,Handle
mov cx,0FFFFh;
mov dx,0FFFEh; moving on -1
mov al,1
int 21h
jc SeekError


mov ah,3fh
mov bx,Handle
mov dx,offset buffer
mov cx,1
int 21h
jc ErrorReading
cmp ax,cx
jl EndOfFile_2
;readed 1 byte from file successfully
mov ah,06h
mov dl,buffer
int 21h
jmp my_loop_2

EndOfFile_2:

SeekError:
;......
ErrorReading:
;......
ErrorOpening:
;......

mov ah,3eh
mov bx,Handle
int 21h

;-------- exit ----
mov ax,4c00h
int 21h
;------------------

codesegment ends

end start
;---------------------------
P.S. в первом номере числа однозначные (0..9) и на одной строке?






Спасибо огромнейшее.
Да числа 1 2 3 4 5 6 7 8 9 10
Скажи пожалуйста какой фуекцией ты выводишь сообщение на экран.

5.3K
28 апреля 2006 года
r000n_m
177 / / 26.02.2006
Блин :} у меня тут написано, что "mov dx,0FFFEh; moving on -1" - на самом деле, коммент неправильный,0FFFEh - это -2, а не -1. Ну хотя, комментарии все равно менять будешь...

Вывожу на экран посимвольно функцией 06h от 21-го прерывания
mov ah,06h
mov dl,buffer
int 21h

Работа над 1-й идет...
5.3K
28 апреля 2006 года
r000n_m
177 / / 26.02.2006
;----------1---------------------
stacksegment segment para stack 'stack'
dw 10h dup(?)
stacksegment ends

datasegment segment para public 'data'
NameFile db 'c:\myfile.txt',0
Handle dw 0
buffer db 0
summator dw 0
message db 13,10,'Srednee arifmeticheskoe: '
counter db 0
db 24h; end of string for 09h(int 21h)
datasegment ends

codesegment segment para public 'code'
assume cs:codesegment, ds:datasegment, ss:stacksegment
start:
mov ax,datasegment
mov ds,ax

mov ah,3dh
mov dx,offset NameFile
mov al,2;r/w
int 21h
jc ErrorOpening
;not error
mov Handle,ax;received handle

my_loop:
mov ah,3fh
mov bx,Handle
mov dx,offset buffer
mov cx,1
int 21h
jc ErrorReading
cmp ax,cx
jl EndOfFile
;readed 1 byte from file successfully
mov al,buffer
cmp al,39h ;>9?
ja BadSymbol
cmp al,30h ;<0?
jb BadSymbol
;symbol of the digit
and al,0Fh
;good digit 0..9
xor ah,ah;clear ah
add summator,ax
inc counter

BadSymbol:
mov ah,06h
mov dl,buffer
int 21h
jmp my_loop

EndOfFile:
;...
SeekError:
;......
ErrorReading:
;......
ErrorOpening:
;......

mov ax,summator
mov bl,counter
div bl
add al,30h
mov counter,al

mov dx,offset message
mov ah,09h
int 21h

mov ah,40h
mov bx,Handle
mov dx,offset message
mov cx,28;length of the message
int 21h;write to file

mov ah,3eh
mov bx,Handle
int 21h

;-------- exit ----
mov ax,4c00h
int 21h
;------------------

codesegment ends

end start
;----------------------------
;Числа должны быть 0..9
;среднее арифметическое округленное
16K
28 апреля 2006 года
WhiteDevil
11 / / 26.04.2006
Огромнейшее человеческое большое большое СПАСИБО.
Очень выручил.
Спасибо еще раз.
Ты очень помог.
18K
29 апреля 2006 года
rnd.gen
1 / / 29.04.2006
r000n_m!
Вижу вы разбираетесь в ассемблере
Помогите пожалуйста советом. С помощью каких средств проще всего научиться программировать на ассемблере? Я когда то программировал на zx spectrum
Хороший комп такой был, у меня досих пор ностальгия. :(
Хотел бы программировать на pc, уже немного разбирался с самой структрурой адресации, она отличается от спектрумовской тем что имеет сегменты.
Буду рад советам. Заранее спасибо.
5.3K
29 апреля 2006 года
r000n_m
177 / / 26.02.2006
Я использую:
1.Литература:
1.1. Юров,"Assembler. 2-e издание"(бумажный)
1.2. Зубков "Ассемблер для DOS, Windows и Unix"(электронный)
1.3. Абель "Ассемблер и программирование для IBM PC"(электронный)
1.4. Метров 5 прочих доков из Интернета
2.Ассемблеры:
2.1. TASM (когда нужно exe под DOS)
2.2. NASM (когда нужен чистый bin)
2.3. MASM32 (этот под Windows, правда сильно в нем не писал)
3.Дизассемблеры и дебаггеры
3.1. IDA (консольный)
3.2. TurboDebugger (DOS)
3.3. RockDebugger (Windows)

Или под средствами имеется ввиду что-то другое?
349
29 апреля 2006 года
Phantom-84
656 / / 27.10.2005
В твоем списке обязательно должен появиться FASM - не пожалеешь!
16K
01 мая 2006 года
WhiteDevil
11 / / 26.04.2006
Народ помогите плз
Скажите где в этой проге сумма делится на количество чисел.
Мне надо чтобы токо складывалось, но не делилось.Покажите плз что убрать нада.А ещ я очень хотел бы попросить дать какое нить простенько меню чтобы в него легко моно было засунуть 2 проги.Оочень нада.
Препод псих. Сначала проги потом меню, а потом еще чо то там сказала будет. Ппц. Выручайте плиззз.
;----------1---------------------
stacksegment segment para stack 'stack'
dw 10h dup(?)
stacksegment ends

datasegment segment para public 'data'
NameFile db 'c:\myfile.txt',0
Handle dw 0
buffer db 0
summator dw 0
message db 13,10,'Srednee arifmeticheskoe: '
counter db 0
db 24h; end of string for 09h(int 21h)
datasegment ends

codesegment segment para public 'code'
assume cs:codesegment, ds:datasegment, ss:stacksegment
start:
mov ax,datasegment
mov ds,ax

mov ah,3dh
mov dx,offset NameFile
mov al,2;r/w
int 21h
jc ErrorOpening
;not error
mov Handle,ax;received handle

my_loop:
mov ah,3fh
mov bx,Handle
mov dx,offset buffer
mov cx,1
int 21h
jc ErrorReading
cmp ax,cx
jl EndOfFile
;readed 1 byte from file successfully
mov al,buffer
cmp al,39h ;>9?
ja BadSymbol
cmp al,30h ;<0?
jb BadSymbol
;symbol of the digit
and al,0Fh
;good digit 0..9
xor ah,ah;clear ah
add summator,ax
inc counter

BadSymbol:
mov ah,06h
mov dl,buffer
int 21h
jmp my_loop

EndOfFile:
;...
SeekError:
;......
ErrorReading:
;......
ErrorOpening:
;......

mov ax,summator
mov bl,counter
div bl
add al,30h
mov counter,al

mov dx,offset message
mov ah,09h
int 21h

mov ah,40h
mov bx,Handle
mov dx,offset message
mov cx,28;length of the message
int 21h;write to file

mov ah,3eh
mov bx,Handle
int 21h

;-------- exit ----
mov ax,4c00h
int 21h
;------------------

codesegment ends

end start
;----------------------------
5.3K
01 мая 2006 года
r000n_m
177 / / 26.02.2006
В переменной summator у нас накапливается сумма
mov ax,summator ;перенос суммы в ax
mov bl,counter ;перенос в bl количества эементов
DIV BL ;!!!деление!!!!

меню выбора скоро будет
5.3K
01 мая 2006 года
r000n_m
177 / / 26.02.2006
С использованием процедур
stacksegment segment para stack 'stack'
dw 10h dup(?)
stacksegment ends

datasegment segment para public 'data'
NameFile db 'c:\myfile.txt',0
Handle dw 0
buffer db 0
summator dw 0
message db 13,10,'Srednee arifmeticheskoe: '
counter db 0
db 24h; end of string for 09h(int 21h)
firstmsg db '1 - program 1',13,10,'2 - program 2',13,10,24h
datasegment ends

codesegment segment para public 'code'
assume cs:codesegment, ds:datasegment, ss:stacksegment
start:
mov ax,datasegment
mov ds,ax

mov dx,offset firstmsg
mov ah,09h
int 21h

wait_key:
mov ah,06h
mov dl,0ffh
int 21h
jz wait_key
cmp al,31h
je prg_1
prg_2:
call progr2
jmp exit
prg_1:
call progr1
exit:
;-------- exit ----
mov ax,4c00h
int 21h
;------------------

progr1 proc

mov ah,3dh
mov dx,offset NameFile
mov al,2;r/w
int 21h
jc p1_ErrorOpening
;not error
mov Handle,ax;received handle

p1_my_loop:
mov ah,3fh
mov bx,Handle
mov dx,offset buffer
mov cx,1
int 21h
jc p1_ErrorReading
cmp ax,cx
jl p1_EndOfFile
;readed 1 byte from file successfully
mov al,buffer
cmp al,39h ;>9?
ja p1_BadSymbol
cmp al,30h ;<0?
jb p1_BadSymbol
;symbol of the digit
and al,0Fh
;good digit 0..9
xor ah,ah;clear ah
add summator,ax
inc counter

p1_BadSymbol:
mov ah,06h
mov dl,buffer
int 21h
jmp p1_my_loop

p1_EndOfFile:
;...
p1_SeekError:
;......
p1_ErrorReading:
;......
p1_ErrorOpening:
;......

mov ax,summator
mov bl,counter
div bl
add al,30h
mov counter,al

mov dx,offset message
mov ah,09h
int 21h

mov ah,40h
mov bx,Handle
mov dx,offset message
mov cx,28;length of the message
int 21h;write to file

mov ah,3eh
mov bx,Handle
int 21h
ret
progr1 endp

progr2 proc

mov ah,3dh
mov dx,offset NameFile
mov al,2;r/w
int 21h
jc p2_ErrorOpening
;not error
mov Handle,ax;received handle

p2_my_loop:
mov ah,3fh
mov bx,Handle
mov dx,offset buffer
mov cx,1
int 21h
jc p2_ErrorReading
cmp ax,cx
jl p2_EndOfFile
;readed 1 byte from file successfully
mov ah,06h
mov dl,buffer
int 21h
jmp p2_my_loop
p2_EndOfFile:

p2_my_loop_2:

mov ah,42h
mov bx,Handle
mov cx,0FFFFh;
mov dx,0FFFEh; moving on -2
mov al,1
int 21h
jc p2_SeekError


mov ah,3fh
mov bx,Handle
mov dx,offset buffer
mov cx,1
int 21h
jc p2_ErrorReading
cmp ax,cx
jl p2_EndOfFile_2
;readed 1 byte from file successfully
mov ah,06h
mov dl,buffer
int 21h
jmp p2_my_loop_2

p2_EndOfFile_2:

p2_SeekError:
;......
p2_ErrorReading:
;......
p2_ErrorOpening:
;......

mov ah,3eh
mov bx,Handle
int 21h
ret
progr2 endp

codesegment ends

end start
16K
01 мая 2006 года
WhiteDevil
11 / / 26.04.2006
Спасиб за меню. Кое что поменять и будет то что нада.СПС.
В той проге я все вроде правильно поменял и деление убрал, а у меня вместо ответа какие то символы дибильные*(((
5.3K
01 мая 2006 года
r000n_m
177 / / 26.02.2006
Цитата:
Originally posted by WhiteDevil
а у меня вместо ответа какие то символы дибильные*(((


Это ничего, значит просто 30h не прибавил.
Для чисел 0..9 коды ASCII: 30h..39h

16K
02 мая 2006 года
WhiteDevil
11 / / 26.04.2006
Цитата:
Originally posted by r000n_m
Это ничего, значит просто 30h не прибавил.
Для чисел 0..9 коды ASCII: 30h..39h





Все есть. Я взял исходник который считает среднее арифметическое и просто убрал оттуда деление а у меня ответ непонятный((
Подскажите плз ( мне дали меню с 2 мя прогами я там одну заменяю. мне надо поставить туда прогу на графику, а при запуске ее просто выходит в волков и все((() памагите.
Тоесть меню и первая прога пашет гуд а вот на графику вылетает и все.
Помогите плиззз.

5.3K
02 мая 2006 года
r000n_m
177 / / 26.02.2006
Исходничек в студию!:D
16K
02 мая 2006 года
WhiteDevil
11 / / 26.04.2006
Цитата:
Originally posted by r000n_m
Исходничек в студию!:D




Смори выше)))
Исходничек выше и начинается
--------------------1------------------
вот так воть и меню тоже тама

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог