1 Востаннє редагувалося Fox (21.03.2017 09:10:19)

Тема: Допоможiть знайти таблицю asm команд для G++

Шукав в гуглi але повну таблицю знайти не смiг.
Менi требе перевести код з Intel code (так було написано в однiй таблицi) в AT&T Code.
Це треба бо G++ каже що я зробив помилку як що йому писати

cli
lgdt [gdtr] 
mov eax, cr0 
or al, 1  
mov cr0, eax
JMP 08h:PModeMain
PModeMain:

Кричить на все що може.
Як що mov я знайшов (я так зрозумiв movl $cr0, %eax) то пошуки по lgdt нiчого не дали

2

Re: Допоможiть знайти таблицю asm команд для G++

По-перше можете скористатись асемблером з інтелівським синтаксисом й прилінкувати, по-друге можете подивитися на AT&T синтаксис в Linux/*BSD проєктах, а по-третє якщо ви не розумієте що воно робить і в якому контексті, то все до ліхтаря.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

3

Re: Допоможiть знайти таблицю asm команд для G++

Все ж дам посилання, хай хоч гуглу пожива буде:
http://wiki.osdev.org/GAS
http://wiki.osdev.org/Opcode_syntax

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

4

Re: Допоможiть знайти таблицю asm команд для G++

vtorgashov написав:

Шукав в гуглi але повну таблицю знайти не смiг.
Менi требе перевести код з Intel code (так було написано в однiй таблицi) в AT&T Code.
Це треба бо G++ каже що я зробив помилку як що йому писати

cli
lgdt [gdtr] 
mov eax, cr0 
or al, 1  
mov cr0, eax
JMP 08h:PModeMain
PModeMain:

Кричить на все що може.
Як що mov я знайшов (я так зрозумiв movl $cr0, %eax) то пошуки по lgdt нiчого не дали

тобто ви хочите сказати в синтаксисі інтел все працюЄ?

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі
Подякували: 0xDADA11C71

5

Re: Допоможiть знайти таблицю asm команд для G++

reverse2500 написав:
vtorgashov написав:

Шукав в гуглi але повну таблицю знайти не смiг.
Менi требе перевести код з Intel code (так було написано в однiй таблицi) в AT&T Code.
Це треба бо G++ каже що я зробив помилку як що йому писати

cli
lgdt [gdtr] 
mov eax, cr0 
or al, 1  
mov cr0, eax
JMP 08h:PModeMain
PModeMain:

Кричить на все що може.
Як що mov я знайшов (я так зрозумiв movl $cr0, %eax) то пошуки по lgdt нiчого не дали

тобто ви хочите сказати в синтаксисі інтел все працюЄ?

Не знаю... Це же асемблер...
Там же хоч який синтаксис вiн все одно переводить це все в машиннi коди якi не можуть бути iншi.

Ну як що (я кажу команду з голови...) припустити що mov це FF то який би не був компилятор вiн все одно напише FF iнакше процессор не пойме що вiд нього хочуть.

6

Re: Допоможiть знайти таблицю asm команд для G++

The world's leading source for technical x86 processor information.
до регістру cr0 пишуть можна зайти лише в режимі ring0

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі

7

Re: Допоможiть знайти таблицю asm команд для G++

reverse2500 написав:

The world's leading source for technical x86 processor information.
до регістру cr0 пишуть можна зайти лише в режимі ring0

Та хто придумав стiльки режимiв. Не думав що тут стiльки мороки буде.

8

Re: Допоможiть знайти таблицю asm команд для G++

просто для розробників немає мороки

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі

9 Востаннє редагувалося Fox (22.03.2017 17:10:48)

Re: Допоможiть знайти таблицю asm команд для G++

reverse2500 написав:

просто для розробників немає мороки

Ага... I довiдки нема... Що куда треба пихати щоб сталося те що треба...

На тому же OS Dev не дуже чiтко росписано що i для чого робити. +Англiйська яку я не знаю.

PS: Cписок того що треба робити кажись знайшов. Але вiн такий великий.
Очi на лоба лiзуть.

Ще i не написали як перевiрити який режим :С

10

Re: Допоможiть знайти таблицю asm команд для G++

Ще i не написали як перевiрити який режим :С

Ги, ги. В реальному режимі виконується лише 16-бітний код з прямою адресацією лише до одного мегабайта ОЗП.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

11

Re: Допоможiть знайти таблицю asm команд для G++

0xDADA11C7 написав:

Ще i не написали як перевiрити який режим :С

Ги, ги. В реальному режимі виконується лише 16-бітний код з прямою адресацією лише до одного мегабайта ОЗП.

Один МБ оперативки ? 0_0
Не... Ну той хто це придумав ще той троль...
Ясно.. Значить забю на вамкнення. Ну його в баню

12

Re: Допоможiть знайти таблицю asm команд для G++

vtorgashov написав:

Один МБ оперативки ? 0_0
Не... Ну той хто це придумав ще той троль...

У 1982 році це було цілком нормально.

Подякували: 0xDADA11C7, cheappi3862

13

Re: Допоможiть знайти таблицю asm команд для G++

koala написав:
vtorgashov написав:

Один МБ оперативки ? 0_0
Не... Ну той хто це придумав ще той троль...

У 1982 році це було цілком нормально.

Один мегабайт....
В мене iso важить 4 мб (ну там GRUB походу такий важкий)

14

Re: Допоможiть знайти таблицю asm команд для G++

Для мене, системного кодера, 1 МБ це дуже багато(особливо якщо казати про розмір образу), навіть на сучасному обладнанні.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: koala1

15

Re: Допоможiть знайти таблицю asm команд для G++

1 мб оперативки це не 1 мб вінчестера, програма зкомпільована займає більше місця чим просто її істинний розмір ( правда це залежить ще від коду програми )

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі