Size: a a a

Ассемблер

2020 April 12

G

Gymmasssorla in Ассемблер
Зачем нужна команда add esp, 4?
источник

G

Gymmasssorla in Ассемблер
Переслано от _
источник

G

Gymmasssorla in Ассемблер
106 страница
источник

G

Gymmasssorla in Ассемблер
А, это мы так стек очищаем от аргументов что ли
источник

楽園松本 in Ассемблер
Gymmasssorla
Зачем нужна команда add esp, 4?
Есть такая вещь, называется фрейм.
источник

AG

Alexander Galileev in Ассемблер
Gymmasssorla
А, это мы так стек очищаем от аргументов что ли
Да. Перед вызовом подпрограммы аргументы запихиваем в стек, после вызова - прибираем за собой.
источник

G

Gymmasssorla in Ассемблер
А как вообще большие программы на ассемблере писались в прошлом? Что использовали вместо типов?
источник

G

Gymmasssorla in Ассемблер
Например, есть у меня вектор из точек и строковое название фигуры. Я вручную должен интерпретировать двоичные данные?
источник

AG

Alexander Galileev in Ассемблер
Поддерживаю вопрос.
источник

T

TGG in Ассемблер
Все знают, что Джон Конвей умер?
источник

AG

Alexander Galileev in Ассемблер
Кто такой Джон Конвей и почему это важно?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
Gymmasssorla
Например, есть у меня вектор из точек и строковое название фигуры. Я вручную должен интерпретировать двоичные данные?
структурами пользовались, типа
struct XYZ
 x     dd ?
 y     dd ?
 z     dd ?
ends

struct SPHERE
 center        XYZ
 radius        dd ?
 color         dw ?
 specular      dw ?
ends
ArraySpheres  SPHERE < 0f,-1f,3f>,1f,255,500
             SPHERE < 2f, -1f,5f>,1f,180,-1

флоаты сами переводятся самим асмом при ассемблировании в нужный формат
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
Gymmasssorla
А как вообще большие программы на ассемблере писались в прошлом? Что использовали вместо типов?
и в асме нет типов. там есть участок памяти (байт, слово, двойное слово и т.д.) с которым оперирует та или иная команда.
источник

G

Gymmasssorla in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
структурами пользовались, типа
struct XYZ
 x     dd ?
 y     dd ?
 z     dd ?
ends

struct SPHERE
 center        XYZ
 radius        dd ?
 color         dw ?
 specular      dw ?
ends
ArraySpheres  SPHERE < 0f,-1f,3f>,1f,255,500
             SPHERE < 2f, -1f,5f>,1f,180,-1

флоаты сами переводятся самим асмом при ассемблировании в нужный формат
А такое есть в NASM?
источник

G

Gymmasssorla in Ассемблер
Кажется, что есть, но документацию не могу найти
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
а то как их интерпретировать зависит от тебя. если число со знаком то сам прораммист выбирает команды которые работают со знаком (jg, jle и т.д.), если без знака то ja jbe и т.д. это несмотря на то что размер аяейки памяти, с которыми оперируют, состоят из 1, 2, 4 байт
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
Gymmasssorla
А такое есть в NASM?
возможно, у меня эт фасм синтаксис, у него самодостаточный мануал. не надо рыскать по сети в поисках что такое struct (это макрос и в документации он описан)
источник

楽園松本 in Ассемблер
Gymmasssorla
А как вообще большие программы на ассемблере писались в прошлом? Что использовали вместо типов?
Программы писались после долгого подготовительного этапа проектирования. Необходимо было продумать процедуры и способы передачи данных между ними. Всё тщательно документировалось. Рисовались обширные блок-схемы. Параллельно разрабатывались батареи тестов, тк обнаружить логические ошибки было очень трудоёмкой задачей. Отдельный разговор это стек, тк отслеживать его было очень сложно.
источник

楽園松本 in Ассемблер
Gymmasssorla
А как вообще большие программы на ассемблере писались в прошлом? Что использовали вместо типов?
Лично для меня образцом для восхищения остаётся код для навигационного компьютера Аполло. Но там пошли ещё дальше. Поскольку не было надёжной памяти, которая могла бы устоять перед радиацией, было принято решение всю программу забить в виде намотанных кусочков проволоки! Это совершенно уму не постижимо!
источник

楽園松本 in Ассемблер
Макроассемблерный код Аполло выложен в интернете. И да, в нём есть ошибки.
источник