Вопрос № 35080: Привет!
1. Пожалуйста, приведите пример программы вывода на экран результата сложения двух чисел:
mov al,10
add al,15 , на примере программы (или другой):
CSEG segment
assume CS:CSEG, DS:CSEG, ES:CSEG, SS:CSEG
org 100...Вопрос № 35100: Добрые люди! Помогите разобраться в этом коде. Некоторую часть я осилил сам. Но общий принцип понять не могу (bl=1A):
00401310 |> 803E 00 |CMP BYTE PTR DS:[ESI],0
00401313 |. 74 15 |JE SHORT crackme#.0040132A
00401315 |. 8A06 |MOV AL...Вопрос № 35115: Добрый день. Вот пишу ос (для интереса). Перешел в защещонный режим. Gdt idt таблицы есть (idt работает точно проверял через свое прерывние int 30).
;; Установим базовый вектор контроллера прерываний в 0x20
mov al,00010001b
out 0x...
Вопрос № 35.080
Привет!
1. Пожалуйста, приведите пример программы вывода на экран результата сложения двух чисел:
mov al,10
add al,15 , на примере программы (или другой):
2. Как вывести на экран:
а) 2 (и более) разных символов, без использования строки.
б) численный символ и строку.
3. Как происходит работа с массивами
У нас есть массив из 10 элементов, нам нужно присвоить им значения.
Отправлен: 09.02.2006, 13:25
Вопрос задал: Retcom (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Seamanmur
Здравствуйте, Retcom!
1. Число перед выводом надо превести в строку(в литерное представление). Пример вывода AX в десятичном виде в приложении(написано не мной, но должно работать).
2.
а) Ну, если коды символов находятся в регистрах, можно их просто вывети на печать. А, вообще, вопрос не очень понятен. А как они тогда организованы эти несколько символов, если не строкой?
б) Объединить две строки - символное представление числа и строку, или просто последовательно вывести их на печать.
3. Пример: заносишь в ES:DI адрес начала массива. Последовательно
mov ax, First
stosw
mov ax, Second
stosw
...
Приложение:
Ответ отправил: Seamanmur (статус: 3-ий класс)
Отправлен: 09.02.2006, 15:10 Оценка за ответ: 3 Комментарий оценки: Я прошу прошения за возможную прямоту комментария, но тем неменее, если он (комментарий) есть, то в него надо писать причину побудившую меня поставить именно такую оценку. Поэтому: Вопрос 1: Программа не полная; А вы немогли бы еще более усложнить такую минимальную задачу??? Вопрос 2: Меня интересуют не Ваши размышления по поводу вопроса и затронутой темы, а практический
ответ на мой вопрос (размышлять я должен сам) - исходник.
P.S. На вопрос нужно ответить так, чтобы он больше не стоял. На вопрос нужно ответить, а не разбить его на множество мелких вопросов.
Еще раз извините за возможную прямоту, но вам нужно непредвзятое мнение.
+1 бал за то, что вообще ответили.
Вопрос № 35.100
Добрые люди! Помогите разобраться в этом коде. Некоторую часть я осилил сам. Но общий принцип понять не могу (bl=1A):
00401310 |> 803E 00 |CMP BYTE PTR DS:[ESI],0
00401313 |. 74 15 |JE SHORT crackme#.0040132A
00401315 |. 8A06 |MOV AL,BYTE PTR DS:[ESI]
00401317 |. 02C1 |ADD AL,CL
00401319 |. 32C1 |XOR AL,CL
0040131B |. F6F3 |DIV BL
0040131D |. 66:C1E8 08 |SHR AX,8
00401321 |. 04 41 |ADD AL,41
00401323 |. 8807 |MOV BYTE PTR DS:[EDI],AL
00401325 |. 47 |INC EDI
00401326 |. 46 |INC ESI
00401327 |. 41 |INC ECX
00401328 |.^EB E6 |JMP SHORT crackme#.00401310
Огромное спасибо!
Отправлен: 09.02.2006, 18:53
Вопрос задал: Compare (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Евгений Иванов
Здравствуйте, Compare!
Берёт данные и шифрует.
простенький алгоритм.
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 09.02.2006, 19:04
Вопрос № 35.115
Добрый день. Вот пишу ос (для интереса). Перешел в защещонный режим. Gdt idt таблицы есть (idt работает точно проверял через свое прерывние int 30).
;; Установим базовый вектор контроллера прерываний в 0x20
mov al,00010001b
out 0x20,al
mov al,0x20
out 0x21,al
mov al,00000100b
out 0x21,al
mov al,00000001b
out 0x21,al
;; Установим ведомый 0x28
mov al, 00010001b ; ICW1
out 0A0h, al
mov al, 0x28 ; ICW2, ведомый
out 0A1h, al
mov al, 2 ; ICW3, ведомый
out 0A1h, al
mov al, 00000001b ; ICW4
out 0A1h, al
Вот обработчики:
void keyb()
{
asm("pusha");
asm("inb $0x60,%al");
puts("Key
");
Сразу выводит один раз time и все. На клавиши не реагирует. В чем проблемма? Th for answer
Отправлен: 09.02.2006, 23:15
Вопрос задал: OlegMA (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: skif quest
Здравствуйте, OlegMA!
Посмотри, в дизасм коде, у тебя в конце кода time стоит ret или iret? а то мне кажется там ret стоит, поэтому он и не возвращается из первого же прерывания.
И вообще, я в таких случаюх проверяю (ставлю эдакий брейкпоинт, и смотрю доходит до него или нет выполнение).
на fasm:
lgdt [gdtr1]
gdtr1:
dw 1*8-1
dd gdtr1+100
но это так, на заметку, этот код ребутит машину.
Ответ отправил: skif quest (статус: 1-ый класс)
Отправлен: 10.02.2006, 06:14