- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
program n1;
label one, two;
begin
asm
mov bh,1
mov bl,1
mov dx,0
mov ax,0
one: inc dx
mov cl,bl
add bl,bh
mov bh,cl
cmp dx,6
jne one
mov al,bl
two: inc dx
mov cl,bl
add bl,bh
mov bh,cl
cmp dx,10
jne two
add al,bl
end;
end.
бейсик на php...
что дальше?..
начинать надо с общего понимания что к чему и потихоньку вникать в тонкости. например Fasm - неплохой минималистичный вариант.
а не использовать для этого учебный язык Вирта, с глючной средой ботланда или debug.com
иначе с чего бы обсирать совершенно обычный и примитивный BASM?
в точку. и от конторы ботланд.
будь у меня хоть капелька власти и/или заинтересованности в этом вопросе я бы построил обучение следующим образом.
1. Архитектура.
- объяснить что работает и как - хотя бы примерно
- почему память использовать дольше
- кеш
- скорость выполнения разных операций - почему например сдвиги очень быстры, а умножения нет
2. показать преимущества асма.
- на асме многие вещи можно сделать короче чем на том ЯВУ что изучали раньше
- до 10 раз прирост в скорости по сравнению с тем ЯВУ что учили раньше
- на асме можно делать всякое низкоуровневое
3. ....
насколько знаю, вводные по архитектуре даются
а вот сдвиги на современных процах уже не быстрее, и это на писюках
когда я учился архитектура была на джва года позже асма
>>а вот сдвиги на современных процах уже не быстрее, и это на писюках
LOL WUT?
тут поподробнее - пруфлинки, объяснения приветствуются
это ж что умножение быстрее сдвига получается? ))
(был в отъезде)
щас побью тебя твоим же любимым низкоуровневым стаффом:
на современных суперскалярных процах одно (а можно и два независимых) целочисленное умножение выполняется 1 такт, такая же арифметика сдвигом - минимум 1 такт плюс сложение. операции не независимы и преимущества конвейера не используются. типа вероятность нечетного множителя = 0,5 т.е. в среднем будет 1,5 такта. еще можно посчитать сколько займет разложение операнда на множители, но мне лень :)
>когда я учился архитектура была на джва года позже асма
не знаю, я неск. лет назад просвещал сиськи касательно селекторов, дна памяти итд. кстати - Джойдейн: практические задачи на уровне железа, ОС и ЯВУ
Он там сначала рассказывает общую архитектуру, и тока потом асм
Мне в свое время очень помогла)
а потом добрался до INT 0x10 :)
вопрос какая специальность, на что направлена.
Если полужелезячная типа защиты информации, то имеет смысл скорее ассемблер для микроконтроллеров - опять же зачем тогда в паскале? чтобы студенты не пугались?
Если это что-то типа "программист широкого профиля", то вопросов еще больше.
почему регистры 16-битные?
почему паскаль по дос (ну очень сильно похоже)?
почему нет сравнения с языком высокого уровня, чтобы понимать зачем и когда это нужно?
Возможен ответ - устаревшие методички, но он меня не устроит.
По ставке преподаватель должен отработать сколько-то часов за 2 семестра (цифру не помню уже).
при этом лекции, практики, лабораторные - по отчетности это только 40-50% часов. Остальное - на проверку практических занятий, на ведение курсовых и дипломных работ - это все еще процентов 30-40%. ну и остаток - подготовка к лекциям, причем 1 пара лекции = 1 часу подготовки, если материал прошлогодний и = 3 часа, если новый.
Проценты могут отличаться, у меня за мою более чем скромную практику работы преподом было так.
понятно что лучше указать 3 часа на разработку "нового" материала, а на деле поправить только чуть-чуть.
ЗЫ. много добросовестных, но мы обычно хорошо замечаем только негатив...
ИМХО скорее всего причина в таком подходе - на чистом асме будет многабукв...
Иначе как рассказать про интерфейс биос, например?
если разработчики ПО - лучше сразу 32. При необходимости 16 смогут изучить сами.
с другой стороны это не особенно важно, т.к. основную задачу курс обучения выполняет.
Принципы уяснят, а дальше сами - так все обучение построено.
А в 16ти разрядах все просто, особенно при моделях памяти типа tiny (или как там когда один сегмент на всё про всё).
Научить студента работать с голым биосом и 16ти разрядным процом -- не сложно, и это поможет ему "почуствовать" компьютер, понять что такое куча и стек и это очень полезно имхо