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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2007, 22:34   #1
Шушелла
Пользователь
 
Регистрация: 24.10.2007
Сообщений: 15
По умолчанию вывод файла на экран!

вот мой код..что-то не так- com файл не генерируется.ошибки наверняка в объявлении буфера..помогите,плз
Код:
 .model   tiny
        .code
        org 100h
        

        mov bp,02h
        mov ax,3D02h
        mov dx,file_name
        int 21h
        jc error
        mov bx,ax
read_next:
        mov ah,3Fh
        mov dx,buffer
        mov cx,80
        int 21h
         jc error
        ;cmp buffer,'0'
        ;je color
        ;cmp buffer,'1'
        ;je color

        or ax,ax
        jz end_reading
        mov cx,ax
        mov ah,40h
        xchg bp,bx
        int 21h
        xchg bp,bx
        jmp read_next
end_reading:
        mov ah,3Eh
        int 21h
        mov al,0
endprog:
        mov ah,4Ch
        int 21h
        error:
        mov al,1
        jmp short endprog
.data       
        file_name db "text.txt",0
   
       
buffer  label   byte

        end

Последний раз редактировалось rpy3uH; 25.10.2007 в 07:47.
Шушелла вне форума Ответить с цитированием
Старый 25.10.2007, 07:55   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Шушелла Посмотреть сообщение
Код:
        mov ah,3Fh
        mov dx,buffer
        mov cx,80
попробуй вот так
Код:
        mov ah,3Fh
        mov dx, offset buffer
        mov cx,80
rpy3uH вне форума Ответить с цитированием
Старый 25.10.2007, 11:57   #3
Шушелла
Пользователь
 
Регистрация: 24.10.2007
Сообщений: 15
По умолчанию

вылезает ошибка несовпадение типов
Шушелла вне форума Ответить с цитированием
Старый 25.10.2007, 12:57   #4
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

на FASM всё нормально
Код:
 
        org 100h
        mov bp,02h
        mov ax,3D02h
        mov dx,file_name
        int 21h
        jc error
        mov bx,ax
read_next:
        mov ah,3Fh
        mov dx,buffer
        mov cx,80
        int 21h
         jc error
        ;cmp buffer,'0'
        ;je color
        ;cmp buffer,'1'
        ;je color

        or ax,ax
        jz end_reading
        mov cx,ax
        mov ah,40h
        xchg bp,bx
        int 21h
        xchg bp,bx
        jmp read_next
end_reading:
        mov ah,3Eh
        int 21h
        mov al,0
endprog:
        mov ah,4Ch
        int 21h
        error:
        mov al,1
        jmp short endprog

        file_name db "text.txt",0      
        buffer db ?
пыщь
JTG вне форума Ответить с цитированием
Старый 26.10.2007, 00:18   #5
Шушелла
Пользователь
 
Регистрация: 24.10.2007
Сообщений: 15
По умолчанию

пасиб,но мне нужно строго под tasm.под него не идет-даже с offset'ами
Шушелла вне форума Ответить с цитированием
Старый 26.10.2007, 11:01   #6
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Так работает. (tasm 5.0)
Можно было и самому догадатся между прочим :Р

Код:
.model   TINY
.code
org 100h
        
Entry:
        mov bp,02h
        mov ax,3D02h
        mov dx,offset file_name
        int 21h
        jc error
        mov bx,ax
read_next:
        mov ah,3Fh
        mov dx,offset buffer
        mov cx,80
        int 21h
         jc error
        ;cmp buffer,'0'
        ;je color
        ;cmp buffer,'1'
        ;je color

        or ax,ax
        jz end_reading
        mov cx,ax
        mov ah,40h
        xchg bp,bx
        int 21h
        xchg bp,bx
        jmp read_next
end_reading:
        mov ah,3Eh
        int 21h
        mov al,0
endprog:
        mov ah,4Ch
        int 21h
        error:
        mov al,1
        jmp short endprog
.data       
        file_name db "text.txt",0
   
       
buffer  label   byte

END Entry
компилировать так:
tasm proga.asm
tlink /t proga.obj

ЗЫ: как же я всё-таки люблю fasm без всяких тупых ограничений хотя синтаксис и там и тут ideal
пыщь

Последний раз редактировалось JTG; 26.10.2007 в 11:04.
JTG вне форума Ответить с цитированием
Старый 26.10.2007, 17:21   #7
Шушелла
Пользователь
 
Регистрация: 24.10.2007
Сообщений: 15
По умолчанию

"...под него не идет-даже с offset'ами"
ошибка была в линковке.спасибо

вот еще такой вопросик, есть какая-нибудь функция,которая обеспечивает вывод на экран файл с помощью BIOS(10h, атрибут выделения цветом)?

Последний раз редактировалось rpy3uH; 28.10.2007 в 10:42.
Шушелла вне форума Ответить с цитированием
Старый 26.10.2007, 18:56   #8
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

mov ah,9
mov al,<символ>
mov bl,<цвет (1-16)>
mov cx,<количество символов>
int 10h
если иммется ввиду готовая функция - забудь, это ж ассемблер )
пыщь
JTG вне форума Ответить с цитированием
Старый 26.10.2007, 22:33   #9
Шушелла
Пользователь
 
Регистрация: 24.10.2007
Сообщений: 15
По умолчанию

а для вывода файла ..?типа mov ah,40h но + mov bl,<цвет>
или придется в цикле разбивать на строки и выводить по байтику?
Шушелла вне форума Ответить с цитированием
Старый 29.10.2007, 09:34   #10
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

ah=40h - это номер функции для вывода в файл (в данном случае в консоль) в bx содержится дескриптор файла. Выводить придётся побайтно + самому устанавливать позицию курсора т.к. функция 09h/int 10h выводит символ с заданными аттрибутами в текущей позиции

Кстати для разных функций содержимое регистров выполняет разную роль. Подробнее тут http://www.codenet.ru/progr/dos/
пыщь
JTG вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод на экран Nikolai_90 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 02.05.2012 09:25
Вывод на экран Rifler Паскаль, Turbo Pascal, PascalABC.NET 10 18.07.2008 18:30
Вывод на 2-ой экран DShiller Общие вопросы Delphi 0 26.05.2008 15:25
вывод массива на экран Неясыть Общие вопросы Delphi 9 20.01.2008 20:18