- 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.
istem 14.09.2010 20:23 # +1
бейсик на php...
что дальше?..
3.14159265 15.09.2010 11:24 # 0
начинать надо с общего понимания что к чему и потихоньку вникать в тонкости. например Fasm - неплохой минималистичный вариант.
а не использовать для этого учебный язык Вирта, с глючной средой ботланда или debug.com
bugmenot 15.09.2010 22:45 # +1
иначе с чего бы обсирать совершенно обычный и примитивный BASM?
3.14159265 16.09.2010 09:40 # +1
в точку. и от конторы ботланд.
будь у меня хоть капелька власти и/или заинтересованности в этом вопросе я бы построил обучение следующим образом.
1. Архитектура.
- объяснить что работает и как - хотя бы примерно
- почему память использовать дольше
- кеш
- скорость выполнения разных операций - почему например сдвиги очень быстры, а умножения нет
2. показать преимущества асма.
- на асме многие вещи можно сделать короче чем на том ЯВУ что изучали раньше
- до 10 раз прирост в скорости по сравнению с тем ЯВУ что учили раньше
- на асме можно делать всякое низкоуровневое
3. ....
bugmenot 16.09.2010 11:08 # −2
насколько знаю, вводные по архитектуре даются
а вот сдвиги на современных процах уже не быстрее, и это на писюках
3.14159265 16.09.2010 12:03 # +2
когда я учился архитектура была на джва года позже асма
>>а вот сдвиги на современных процах уже не быстрее, и это на писюках
LOL WUT?
тут поподробнее - пруфлинки, объяснения приветствуются
это ж что умножение быстрее сдвига получается? ))
bugmenot 17.10.2010 21:55 # 0
(был в отъезде)
щас побью тебя твоим же любимым низкоуровневым стаффом:
на современных суперскалярных процах одно (а можно и два независимых) целочисленное умножение выполняется 1 такт, такая же арифметика сдвигом - минимум 1 такт плюс сложение. операции не независимы и преимущества конвейера не используются. типа вероятность нечетного множителя = 0,5 т.е. в среднем будет 1,5 такта. еще можно посчитать сколько займет разложение операнда на множители, но мне лень :)
>когда я учился архитектура была на джва года позже асма
не знаю, я неск. лет назад просвещал сиськи касательно селекторов, дна памяти итд. кстати - Джойдейн: практические задачи на уровне железа, ОС и ЯВУ
bugmenot 17.10.2010 22:01 # 0
Анонимус 16.09.2010 19:25 # +1
Он там сначала рассказывает общую архитектуру, и тока потом асм
This is obvious 19.09.2010 11:07 # 0
Анонимус 20.09.2010 01:12 # 0
Мне в свое время очень помогла)
inkanus-gray 14.09.2010 20:33 # 0
istem 14.09.2010 20:36 # +3
inkanus-gray 14.09.2010 20:41 # +4
istem 14.09.2010 20:50 # +2
inkanus-gray 14.09.2010 21:11 # 0
TarasB 14.09.2010 21:08 # +3
inkanus-gray 14.09.2010 21:12 # +2
istem 14.09.2010 21:13 # 0
bugmenot 17.10.2010 22:03 # 0
Анонимус 14.09.2010 21:02 # +2
а потом добрался до INT 0x10 :)
TarasB 14.09.2010 20:41 # 0
inkanus-gray 14.09.2010 20:43 # 0
Stalker 14.09.2010 22:22 # +2
ctm 15.09.2010 06:43 # 0
bugmenot 15.09.2010 22:48 # +1
ctm 16.09.2010 12:56 # +3
вопрос какая специальность, на что направлена.
Если полужелезячная типа защиты информации, то имеет смысл скорее ассемблер для микроконтроллеров - опять же зачем тогда в паскале? чтобы студенты не пугались?
Если это что-то типа "программист широкого профиля", то вопросов еще больше.
почему регистры 16-битные?
почему паскаль по дос (ну очень сильно похоже)?
почему нет сравнения с языком высокого уровня, чтобы понимать зачем и когда это нужно?
Возможен ответ - устаревшие методички, но он меня не устроит.
По ставке преподаватель должен отработать сколько-то часов за 2 семестра (цифру не помню уже).
при этом лекции, практики, лабораторные - по отчетности это только 40-50% часов. Остальное - на проверку практических занятий, на ведение курсовых и дипломных работ - это все еще процентов 30-40%. ну и остаток - подготовка к лекциям, причем 1 пара лекции = 1 часу подготовки, если материал прошлогодний и = 3 часа, если новый.
Проценты могут отличаться, у меня за мою более чем скромную практику работы преподом было так.
понятно что лучше указать 3 часа на разработку "нового" материала, а на деле поправить только чуть-чуть.
ЗЫ. много добросовестных, но мы обычно хорошо замечаем только негатив...
ИМХО скорее всего причина в таком подходе - на чистом асме будет многабукв...
Анонимус 16.09.2010 19:27 # +2
Иначе как рассказать про интерфейс биос, например?
ctm 17.09.2010 07:04 # +1
если разработчики ПО - лучше сразу 32. При необходимости 16 смогут изучить сами.
с другой стороны это не особенно важно, т.к. основную задачу курс обучения выполняет.
Принципы уяснят, а дальше сами - так все обучение построено.
Stalker 17.09.2010 20:02 # 0
Анонимус 20.09.2010 01:22 # +1
А в 16ти разрядах все просто, особенно при моделях памяти типа tiny (или как там когда один сегмент на всё про всё).
Научить студента работать с голым биосом и 16ти разрядным процом -- не сложно, и это поможет ему "почуствовать" компьютер, понять что такое куча и стек и это очень полезно имхо
BiSe_Trojanov 12.02.2011 00:39 # 0