Hужен компилятор на 64-разрядную систему - Assembler
Формулировка задачи:
скачал программу фасм ,ввёл туда этот код (для примера )
запускаю а оно мне пишет что ему нужна 32 разрядная система (а у меня 64) так от вопрос,где скачать нормальный компилятор или как в этом же создать программу на 64 разряда??? зарание спс!!!!!!!!!!
org 100h mov ah,09h ;write int 21h int 20h text db "привет" ,24h
PS : повторял это действие на 32 разрядной системе ,всё заработало,был создан файл "com" и запускался!!!,мож я чёт недопонимаю
PS : повторял это действие на 32 разрядной системе ,всё заработало,был создан файл "com" и запускался!!!,мож я чёт недопонимаю
Решение задачи: «Hужен компилятор на 64-разрядную систему»
textual
Листинг программы
; masm dos exe # .model small .data delta dd 0.001 ;величина изменения divK dd 5.0 ;расстояние между дугами xr dw 0 ;координаты выводимой точки yr dw 0 .code .486 start: mov ax,@data mov ds,ax mov cx,0C470h ;количество итераций цикла mov ax,12h ;инициализация графического режима 640х480х16 цветов int 10h ;------------------------------------------------------------------ finit ;инициализация сопроцессора fldz mov ah,0Ch; функция 10h прерывания - установить точку xor bx,bx l1: fld st fld st fsincos fmul divK fmul st,st(2) fistp word ptr xr ;заносим X в переменную для вывода на экран fmul divK fmul fistp word ptr yr ;заносим Y в переменную для вывода на экран push cx mov cx,xr mov dx,yr add dx,240; 240 - половина высоты экрана в этом режиме add cx,320; 320 - половина ширины экрана в этом режиме mov al,0A3h; цвет правой спирали int 10h ;выводим точку заданным цветом sub dx,yr sub dx,yr int 10h ;выводим точку заданным цветом pop cx fadd delta;вычисляем новое значение alpha loop l1 ;цикл по cx ;-------------------------------------------------------------------- mov ah,0 ;ожидание нажатия клавиши int 16h mov ax,3 ;перевод обратно в TextMode int 10h mov ah,4Ch ;стандартный выход int 21h end start
Объяснение кода листинга программы
Список элементов:
- Дельта (величина изменения) - dd 0.001
- Дистанция между дугами - dd 5.0
- Координаты выводимой точки (x) - dw 0
- Координаты выводимой точки (y) - dw 0
- Количество итераций цикла - mov cx,0C470h
- Инициализация графического режима 640х480х16 цветов - mov ax,12h
- Сохранение регистра AX после установки графического режима - mov ax,@data
- Сохранение сегмента данных в регистре DS - mov ds,ax
- Введение в действие сопроцессора - finit
- Начальное значение альфа - fldz
- Установка начальной точки для спирали - mov ah,0Ch
- Переменная для хранения X координата - xr
- Переменная для хранения Y координата - yr
- Вычисление новой точки по координатам X и Y - fld st
- Вычисление новой точки по координатам X и Y - fld st
- Вычисление новой точки по координатам X и Y - fsincos
- Вычисление новой точки по координатам X и Y - fmul divK
- Вычисление новой точки по координатам X и Y - fmul st,st(2)
- Сохранение новой точки X в переменной xr - fistp word ptr xr
- Сохранение новой точки Y в переменной yr - fmul divK
- Сохранение новой точки Y в переменной yr - fmul
- Сохранение новой точки Y в переменной yr - fistp word ptr yr
- Вывод точки на экран - mov al,0A3h
- Вывод точки на экран - int 10h
- Вычисление нового значения альфа - fadd delta
- Ввод в действие цикла по итерациям - loop l1
- Ожидание нажатия клавиши - mov ah,0
- Перевод обратно в TextMode - mov ax,3
- Выход из программы - mov ah,4Ch
- Вывод точки на экран (для случая, когда требуется 2-я спираль) - int 10h
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д