1 00:00:00,180 --> 00:00:06,930 So in this, we are going to talk about the compensation process, actually, I should not regard this 2 00:00:06,930 --> 00:00:13,710 process as compensation process because there is no computer involved, but generally people refer the 3 00:00:13,710 --> 00:00:18,280 transformation of our source code into the executable as a compensation process. 4 00:00:18,720 --> 00:00:21,820 That's what I mentioned this as a comparison process. 5 00:00:22,710 --> 00:00:26,270 So in this process, first we write our assembly file. 6 00:00:26,520 --> 00:00:32,280 I mean, a summary call in a file and save it with that is some extension. 7 00:00:33,610 --> 00:00:37,420 After that, we need to use a tool called summer. 8 00:00:38,080 --> 00:00:46,150 So this summer converts our source code into the object put in this recording calls, we are going to 9 00:00:46,150 --> 00:00:48,840 use the Nozomi assembler, which is NetWare. 10 00:00:49,360 --> 00:00:55,600 That's why, for the convenience, we are going to discover that our source qualified as darkness. 11 00:00:56,410 --> 00:01:03,400 So whenever anyone sees this or they would understand that or you have written this source code and 12 00:01:03,400 --> 00:01:11,170 come back with not so much of and this Nozomi summer transforms this our source code into the object 13 00:01:11,170 --> 00:01:14,380 for this object contains the metadata. 14 00:01:14,380 --> 00:01:23,020 And somebody with metadata in the in the sense means how many sections are there, how many libraries 15 00:01:23,020 --> 00:01:26,170 it's using and any other information. 16 00:01:26,530 --> 00:01:31,300 And the small table contains the actual information about the code. 17 00:01:31,690 --> 00:01:38,210 So if you have 10 variable names, then does those names are stored in a similar table. 18 00:01:38,470 --> 00:01:45,400 So if this is somebody sometimes in the debugger you can see the source code because you have preserved 19 00:01:45,400 --> 00:01:46,960 the symbol in it. 20 00:01:49,140 --> 00:01:55,590 Generally, the actual deferred compensation does not present the same, but we can add an option to 21 00:01:55,590 --> 00:02:00,750 preserve the number so that metadata and the similar, there will be no object. 22 00:02:00,770 --> 00:02:09,680 Well, then this object circumvents any other shared libraries that our source is using. 23 00:02:10,020 --> 00:02:17,310 Then we use the N-word to encourage this will links every source file. 24 00:02:18,350 --> 00:02:27,440 The hour we mentioned in our call, and it will generate a single executable called Alphie, as you 25 00:02:27,440 --> 00:02:31,670 can see in Windows Operating Systems, it's called Yuxi are portable, executable. 26 00:02:31,910 --> 00:02:40,460 But in Linux we refer to as aerofoil executable and an inclusive format and we can run this binary with 27 00:02:40,460 --> 00:02:41,360 permissions said. 28 00:02:42,540 --> 00:02:50,870 So I want to revise once more the actual process, first rewrite the record in a file and say with now 29 00:02:51,270 --> 00:02:57,360 and then we assemble witness armorer and this creates an object file. 30 00:02:57,990 --> 00:03:01,510 And with the help of Linko, we create a from that object. 31 00:03:02,250 --> 00:03:10,200 So this is basic overview of how high level assembly code turns into actual executable.