![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 23.12.2010
Сообщений: 7
|
![]()
Мне нужно вывести таблицу векторов прерываний на экран.
Обращаюсь к вектору функцией 35h (mov ah,35h) и номером вектора al (mov al,1 например) Вектора считываю и заношу просто в хранилище. Но при выводе на экран, шестнадцатеричный код вектора воспринимается как 4 символа (то есть по 2 цифры на символ). А мне нужно вывести просто код этих символов , а не их самих. В общем вот прога моя. Помогите люди, прошу очень. Курсач как-никак =). Код:
Последний раз редактировалось Stilet; 23.12.2010 в 16:42. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 20.07.2010
Сообщений: 52
|
![]()
Насколько я понял, надо номер вектора, который лежит в буфере в двоичном виде, преобразовать в 16-ричные символы и вывести эти символы на экран. Вот две процедуры, которые как раз это и делают с одним байтом (подсмотрел у П.Нортона
![]() Код:
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
![]()
И нулевой вектор пропускается, это так задумано? )
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 23.12.2010
Сообщений: 7
|
![]()
хм... Ну насколько я понял и литературы, то вектор с номером 1 лежит по адресу 0000:0000h . А в al должны заноситься номера, на счет 0 вектора не знаю. Поправьте, если ошибаюсь.
Да спасибо Ant1971on, сейчас попробую =) Ant1971on, на сколько я понял в процедуре WRITE_CHAR выводить нужно DL ?? то есть просто так же через mov ah,40h вывести , и получу само DL, будь там буквы или цифры (то есть всякие палочки и смайлики уже выводить на экран не будет) ? Последний раз редактировалось Stilet; 25.12.2010 в 11:46. |
![]() |
![]() |
![]() |
#5 | ||
Пользователь
Регистрация: 20.07.2010
Сообщений: 52
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#6 |
Регистрация: 23.12.2010
Сообщений: 7
|
![]()
Большое спасибо Ant1971on ! =)
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 20.07.2010
Сообщений: 52
|
![]()
Да, совсем забыл... Содержимое вектора, например, ES:BX = 00A7 1068 в буфере будет храниться как 68,10,A7,00. Так что выводить его надо задом наперед, а то получится ерунда. Ну это так, на всякий случай
![]() |
![]() |
![]() |
![]() |
#8 |
Регистрация: 23.12.2010
Сообщений: 7
|
![]()
Хех! блин )) спасиб, совсем забыл , думаю .. что же он мне выводит ))
Хорошо, когда знаешь ассемблер. Очень хорошо )) Выводит не то, что лежит в DL , подскажите почему? При вызове функции 02h в DL лежи то, что нужно, а выводит не то. МБ флаги?? Код:
Последний раз редактировалось Stilet; 06.01.2011 в 15:37. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 20.07.2010
Сообщений: 52
|
![]()
Привет ! Вот, написал твою программку, но тоже столкнулся с проблемой. Программа хорошо работает в отладчике, правильно выводит символы, но если запускаю сам экзешник, работает некорректно, то есть где-то выводит верно содержимое вектора, а где-то нет. Почему так происходит - непонятно(я ведь тоже новичок, хоть ты и записал меня в знатоки ассемблера
![]() Код:
|
![]() |
![]() |
![]() |
#10 |
Регистрация: 23.12.2010
Сообщений: 7
|
![]()
Ну будем думать, соображать. Интересно, если написать в СОМ программе, что-нибудь изменится?
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Связный список векторов | Kekcuk | Общие вопросы C/C++ | 0 | 13.12.2010 21:00 |
Перемножение векторов | Smile_Eminsa | Общие вопросы C/C++ | 0 | 11.05.2010 09:14 |
Массив из 2 векторов | GreatMuse | Общие вопросы C/C++ | 6 | 30.01.2010 22:09 |
Ввод векторов и матриц, умножение матрицы на вектор и вычисление скалярного призведения двух векторов | zverushka | Помощь студентам | 18 | 20.02.2009 15:25 |