Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Написать программу на ассемблере

LEX FLECS Ученик (105), на голосовании 4 месяца назад
Голосование за лучший ответ
Татьяна Просветленный (36384) 5 месяцев назад
 include console.inc 
comment *
директива include вставляет в начало программы
содержимое файла с именем console.inc,
содержащего директивы и макроопределения
*

.data?
A dd ?
B dw -8
X db ?

.code
; X := (2*A - (A+B)^2) mod 7
Start:
; Write('Введите целое A='); Read(A)
inint A,"Введите целое A="

; Пусть введено (хорошее) A, т.е. CF=0
mov ebx,A ; ebx := A
movsx eax,B ; eax := Longint(B)
add eax,ebx ; eax := B+A = A+B
imul eax,eax ; eax := (A+B)^2

; Пусть 2*A помещается в eax, т.е. CF=0
add ebx,ebx ; ebx := A+A = 2*A
sub ebx,eax ; ebx := 2*A - (A+B)^2

; Пусть 2*A - (A+B)^2 помещается в ebx, т.е. OF=0
mov eax,ebx ; делимое
cdq ; := int64(eax)
mov ebx,7 ; 32-битный делитель
idiv ebx ; eax := (2*A - (A+B)^2) mod 7
mov X,dl ; ответ длиной в байт

Writeln("Ответ X=",X:8)
outintln X,8,"Ответ X="
exit ; выход из программы
end Start
Роман ДаниловМудрец (10916) 5 месяцев назад
А где содержимое console.inc ? Без него программа недописана и работать не будет.
Похожие вопросы