Всем добрый вечер,есть парочка вопросов,начал изучать ассемблер.. и вот собственно первая лабораторная на нём , простенькая формула ,подобные которой я за 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
На ассемблере она же испортила мне добрую половину мозга.Какой компилятор и линкер использовать лучше всего под 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