| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > Ассемблер - это сложно? |
| Автор: Чердак 27.2.2005, 19:27 |
| Кому ассемблер, в первый день знакомства с ним, показался мудренным?... Помогите, как с ним справиться? Есть ли что по ассемблеру из серии для ЧАЙНИКОВ?... Даже не наю с чего начать, купил умную книжку, которая для меня оказалась весьма мудренной и не совсем понятной. Подскажите как был освоен вами язык, и сколько времени потребуется, чтобы хоть немножко в нем шарить? Если честно я в полном отчаяние... |
| Автор: sergejzr 27.2.2005, 20:46 |
| Для начала неплохо пробежаться по закреплённым темам http://forum.vingrad.ru/index.php?showtopic=34 |
| Автор: oleg1973 28.2.2005, 00:47 |
| и вовсе не сложно уж если чел понял чем отличается в С myvar от &myvar и от *myvar то в асме в 100 раз все проще |
| Автор: cardinal 28.2.2005, 01:59 |
| Могу посоветовать http://books.dore.ru/bs/f1bid298.html для начала это самое то что надо... |
| Автор: Гость_Lenin2917 20.3.2005, 20:25 |
| Чердак - Его не надо УЧИТЬ!!! его надо изучать и самое главное, на мой взгляд, это разобраться в адрессации и смещениях и все будет ОК! А начинать лучше наверное с Зубкова или Пирогова. |
| Автор: Чердак 20.3.2005, 21:04 |
| Спасибо всем за советы Был на wasm, кое-чего там прочел, полезные вещи глаголят). Прочел лекции Калашникова (из рассылок), но там маловато теории по работе с числами. Сейчас штудирую учебник по асму В.И. Юрова, хочу отметить, что довольно-таки содержательная книженция. С помощью нее написал следующую прогу: Дано число в двоичном виде. Разделить его на две составляющие: в первую войдут только четные разряды, во-вторую нечетные. Их логически перемножить и результат умножить на 16. Прога работает отлично, тока вот ничего не выводит, так как у меня пока с этим проблем (т.е. пока с экранном не работаю, так как не умею, сейчас над этим работаю). Написал прогу, в которой работаю с матрицами, тока вот вывести полученную (преобразованную) матрицу не получается |
| Автор: Chingachguk 20.3.2005, 21:17 |
| Чердак С помощью этой процедуры можно переключить экран в текстовый режим 25x80: {$F+} Procedure Initgraph; {Инициализация работы с текстовым режимом 25*80} Begin Asm pusha mov ah,02h xor dx,dx mov bh,03h int 10h mov ax,1003H xor bx,bx int 10H popa End; End; После этого ты можешь выводить на экран текстовые строки вот этой процедурой: {$F+} Procedure Outt(Color,X,Y:byte; AddrText:pointer); {Отобразить строку на экран} Begin Asm pusha push ds push es push 0B800h pop es cld lds si,AddrText mov al,160 mov ah,byte ptr Y dec ah mul ah mov di,word ptr X dec di and di,127 shl di,1 add di,ax lodsb xor ch,ch mov cl,al test al,al jz @ZIRO mov ah,Color @FILL_STR: lodsb stosw loop @FILL_STR @ZIRO: pop es pop ds popa End; End; |
| Автор: Чердак 20.3.2005, 21:54 |
| Chingachguk Спасибо, тока это придется проги на паскале писать с вставками на асме. А мне нужна прога чисто на асме Можно как-нить выводить данные не в символьном виде, а через переменные. Или к переменным нужно прибавлять 30 и выводить их как код символа? |
| Автор: Chingachguk 20.3.2005, 23:27 | ||
| Чердак Нет, я просто дал их для примера. Собственно, логика вывода внутри них. Компиллировать с директивами .286.
|