LINUX.ORG.RU

Сообщения Assembler

 

Assembler. (eip). lea.

здрасьте, здрасьте люди добрые.

объясните синтаксис вот этого.


lea point(%rip), %rax
lea point, %rax

пожалуйста объясните в чем отличие между этими двумя инструкциями?

можно ли lea заменить mov?

 

Assembler
()

информатика . школьная программа .

здрасьте здрасьте люди добрые

помогите разобраться.

информатику не проходил в школе, просто ее не было.

вот сейчас стал читать умные книжки по совету форума и столкнулся с тем, что не понимаю о чем толкуют авторы.

как я понимаю: байт, имее 8 ячеек. в восьми ячейках у нас может быть 256 состояний.

но нумеруются биты, с нуля. сначала идет два в нулевой степени, затем идет два в первой , два во-второй и тд. и тогда выходит что два в седьмой займет 8 ячеек. а два в седьмой -это 128. значит байт может хранить максимальное значение 128. в чем я неправ? пожалуйста объясните

 

Assembler
()

Assembler Gas непонятное для меня поведение программы

здрасьте здрасте люди добрые

объясните кто знает, почему программа не вылетает с ошибкой а уходит в цикл


.section .bss
out:
.space 8

.section .data

frt: "%d"

.section .text
.global main
main:
  lea out, %rsi
  lea frt(%rip), %rdi
  mov $0, %rax
  call scanf
  mov $0, %rax

  mov out, %rsi
  lea ft(%rip), %rdi  // только тут заметил значение RIP, как надпись покойся с миром.
   mov $0, %rax
  call printf
   mov $0, %rax

  

если добавить в конец ret, то что он снимет со стека? адрес следующей команды за scanf или за printf?

что тут произойдет? scanf положит на стек адрес следующей команды, а это будет mov $0, %rax. дальше все попорядку и когда дойдет до printf то на стек ляжет адрес команды следующей за printf.

а что потом? можете объяснить, как это все будет разматываться?

 

Assembler
()

C++ private поля

здрасте здрасте люди добрые

скажите пожалуйста посредством чего достигается инкапсуляция?

class exemple
{
int a=456; // как достигается то что поле'a' не видно полю 'b' ? 
public:
int b=789;
friend func(exemple obj); // как работает дружественная функция?
как она видит поля  private? заслуга компилятора в этом? 
как это происходит? думаю что многие скажут, что вопрос непонятен им.  Для них повторю еще раз. 

пожалуйста объясните как дружественная функция видит приватные поля ? объяснение преподов об окошечках меня не устроило. Тем более что вы недавно сами критиковали подобные глупые способы объяснения, находя их дурацкими. Так объясните пожалуйста правильно. Покажите как надо.

Еще раз:  каким образом дружественная функция видит приватные поля.  Почему поля класса из private и public не видны друг другу? они расположены в одной обрасти памяти? 

};

 

Assembler
()

ООП С++ для начинающих

здрасьте здрасьте люди добрые

если можно объясните в чем будет отличие

Извините что текс не отформатирован, но отступы делаю по TAB, который тут не работает.

#include <iostream>

class foo
{

int v = 12345;

public:

void func();



};

void foo::func(){std::cout << " ";}
/////////////////////////////////////




class foo
{

void foo(){std::cout << " " ;}// будут ли коренные отличия в коде при описании методов класса вот такими способами? 

Если будут, то какие?


};

Пожалуйста поймите, что я начинающий. Задаю вопрос Вам потому что надеюсь, что найдутся обитатели данного форума, кто хорошо понимает все тонкости этого языка.

 

Assembler
()

Модули

здрасте, здрасте люди добрые!

пожалуйста объясните что такое модули в С++

чем они отличаются от заголовочных файлов?

я начинающий. услышал звон но не понимаю где он.

если нетрудно найдите время чтобы объяснить

 

Assembler
()

Gas, stack, Ассемблерная вставка

здрасте, здрасте люди добрые!

есть процедура

.global proc
proc:

push %rbp
mov %rsp, %rbp

sub 64, %rbp

mov $777, -24(%rbp)




pop %rbp
mov %rbp, %rsp



ret

подскажите, как данные из стека, теперь выудить в программе на С++?


#include <iostream>

int main()
{

asm(

"call proc\n"

// в каждой новой программе под стек выделяется новая область в оперативной памяти, я так понимаю.  подскажите пожалуйста, как теперь можно обратиться к тому стеку, что в процедуре  proc? 

через ss?  как достать от туда 777? 
очень надеюсь, что поможете
);


}

 

Assembler
()

кто знает хорошо Assembler Gas

здрасьте , здрасьте люди добрые

помогите пожалуйста разобраться !

вот так я могу сделать на nasm

section .bss
sl resb 8

section .text
global start
start:

mov dword[sl], "111"
mov rax, 4
mov rbx, 1
mov rcx, sl
mov rdx, 8
int 0x80
mov rax, 1
int 0x80

это на nasm

а вот такое же я делал на Gas, но не помню как.



.section .bss
sl: 
.space 8
.section .text
global main
main:
// как это написать на  Gas чтобы вывести символьный массив?
mov $4, %rax
mov $1, %rbx
mov $  , %rcx
mov $8, %rdx

int $0x80
mov $1, %rax
int $0x80

р

 ,

Assembler
()

find

наткнулся на тему, где одна девушка объясняла про find , какому-то форумчанину. я немного не догнал, но задавать там вопросы не стал. решил спросить здесь. потому что тут, как я думаю, знают , вернее должны знать об этом лучше.

#mkdir dr
#touch {A..z}
#pwd 
/root 

#find / -type f -regex [AB]

не найдет. но если сделать вот так

#find * -type f -regex [AB]

то заглянет даже в созданные мной каталоги. но этого нет в синтаксисе.

как это работает вообще?

find / -где будет искать? начиная с корня и включая все вложенное? тогда почему не видит созданную мною директорию?

 ,

Assembler
()

plasma

привет

если есть у кого время и знания в теме настройки этого окружения, то дайте совет, как сделать свертывание и развертывание окон в левом углу вместо стандартного правого.

что для этого нужно установить?

 

Assembler
()

RSS подписка на новые темы