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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2015, 18:04   #1
turbo-tormoz
 
Регистрация: 11.02.2015
Сообщений: 4
По умолчанию Прерывание 10h, функция 0Fh

Видеорежим. Получить номер текущей активной страницы.

Код:
mov AH,0Fh
int 10h
После выполнения в BH должно записаться число, так? Но ничего не записывается - смотрели и под отладчиком.
Сижу на эмуляторе DOSBox. Может эта функция и не работает в DOSBox?

И как это число потом вывести на экран?
Вот так получится?

Код:
mov DH,0
mov DL,BH
mov ax,09h
int 21h
turbo-tormoz вне форума Ответить с цитированием
Старый 11.02.2015, 18:20   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

Описание прерывания int 10h:
http://www.codenet.ru/progr/dos/int_0009.php

0fH читать текущий видео режим
вход: нет
выход: AL = текущий режим (см. функцию 00H)
AH = число текстовых колонок на экране
BH = текущий номер активной страницы дисплея

Описание прерывания int 21h
http://www.codenet.ru/progr/dos/int_0026.php
•Функция DOS 02H: вывод на дисплей
•DL = символ, выводимый на стандартный вывод


Код:
mov ax,09h
Почему не 02h?
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 12.02.2015, 03:27   #3
turbo-tormoz
 
Регистрация: 11.02.2015
Сообщений: 4
По умолчанию

challengerr, и так тоже ничего не выходит. После выполнения строки int 10h регистр AX меняет значение, BX не изменяется, на экран ничего не выводится (

Код:
.model tiny
.code		
org 100h	

start:
	mov ah,0Fh ; читать текущий видео режим
	int 10h
 
	mov ah,09h
	mov dl,bh
	int 02h

	ret

end start
turbo-tormoz вне форума Ответить с цитированием
Старый 12.02.2015, 15:38   #4
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

Код:
mov DH,0
mov DL,BH
mov ax,02h
int 21h
Почему не вот так имелось в виду?
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 15.02.2015, 15:09   #5
turbo-tormoz
 
Регистрация: 11.02.2015
Сообщений: 4
По умолчанию

Цитата:
Сообщение от challengerr Посмотреть сообщение

Почему не вот так имелось в виду?
ф-ция 02h выведет символ, соответствующий значению в регистре..
А мне нужно было вывести именно число... Но с этим я разобрался )

А вот почему у меня функция 0Fh не выполняется? Регистр bh не изменяется..(
turbo-tormoz вне форума Ответить с цитированием
Старый 09.04.2015, 13:58   #6
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

..всё изменяется. Отладчик-же показывает:
Код:
C:\>debug
-a
0B35:0100 mov ah,0F
0B35:0102 int 10
0B35:0104 ret
0B35:0105
-r
AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0B35  ES=0B35  SS=0B35  CS=0B35  IP=0100   NV UP EI PL NZ NA PO NC
0B35:0100 B40F          MOV     AH,0F
-t
AX=0F00  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0B35  ES=0B35  SS=0B35  CS=0B35  IP=0102   NV UP EI PL NZ NA PO NC
0B35:0102 CD10          INT     10
-t
;----------| здесь отрабатывает INT-10, и на выходе получаем
-t
AX=5003  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0B35  ES=0B35  SS=0B35  CS=0B35  IP=0104   NV UP EI PL NZ NA PO NC
0B35:0104 C3            RET
выход:
Код:
 AL = текущий режим = 03 = текстовый
 AH = число колонок = 50h = 80d
 BH = активная страница = 0
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
видеорежим bios int10h (mov ax,10h) hanns1 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 14 02.02.2013 13:33
Прерывание 21h функция 4C (Exit) RuVarez Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 29.10.2012 15:29
ошибка возвращаемойая прерыванием int 10h shturman Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 01.07.2010 14:04
INT 10H Вывод строки ADA Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 14.05.2009 09:44
Вывод через Int 10h braun Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 11.11.2007 17:46