jaKrevedko

Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всем добрый вечер,есть парочка вопросов,начал изучать ассемблер.. и вот собственно первая лабораторная на нём , простенькая формула ,подобные которой я за 10 минут осваивал на Делфях и плюсах когда начинал их изучать. формула M = 16(n(n + 1)(2n + 1)) На ассемблере она же испортила мне добрую половину мозга.Какой компилятор и линкер использовать лучше всего под Windows 7 x64 , старенький тасм который раздали в институте на ней даже не запустился , масм не хочет ничего компилировать ругается на какие то ошибки описания которых я не смог нагуглить.И если можно , проверьте сам текст программы на ошибки. Код: Data1 Segment M Dw ? N Dw 5 ;любое число X DW 16 One Dw 1 Two Dw 2 Data Ends Code1 Segment Assume CS: Code, DS:Data1 Start: Mov Ax,Data1 Mov Ds,Ax Mov Es,Ax Mov Ax,Two ;Ax =2 Idiv One Imul N ;AX=AX*N Mov AX,BX ;AX помещаем в BX (2*n) Add AX,One ;AX+1 (2n+1) Mov AX,BX ;AX помещаем в BX (2n+1) Mov AX,N ;N помещаем в AX Add AX,1 ;AX+1 Mov AX,CX ;AX помещаем в CX (N+1) Mov AX,N ;N помещаем в AX Imul BX ;AX умножаем на BX (n*(n+1)) Imul CX ;AX умножаем на CX (n*(n+1))*(2n+1) Mov AX,BX ;BX= n*(n+1))*(2n+1) Mov AX,16 ;AX=16 Imul BX Mov AX,M ;M=16*((n*(n+1)*(2n+1)) Mov AL,0 Mov AH,4CH Int 21H Code1 Ends end Start |
|