Description: This is Part 2 of the Windows Assembly Language Primer. Please begin here by watching Part 1 if you have not already done so.
In this video, we will understand the basics of Protected mode operation and then look at Windows assembly basics. It is important to note that Windows runs in Protected mode. We then look at how to compile and link assembly language programs using MASM and LINK. We go on to create a HelloWorld program in 32-bit assembly. This is a type with me exercise, where I expect viewers to try it out simultaneously as I show the demo in the video.
Tags: basics ,
Disclaimer: We are a infosec video aggregator and this video is linked from an external website. The original author may be different from the user re-posting/linking it here. Please do not assume the authors to be same without verifying.
Hello Vevik, thanks for the videos.
I am having a problem with the linking the Kernel32.Lib and User32.Lib. I have set my environmental paths to locate these libraries but I keep getting the error: "LINK : fatal error LNK1104: cannot open file 'Kernel32.Lib'". Please help.
Also, My system is Window 7 Ultimate, 64bit OS
Hi mate, I had the same error. I solved with:
link /subsystem:windows /defaultlib:C:\masm32\lib\kernel32.lib /defaultlib:C:\masm32\lib\user32.lib helloworld.obj
(just applying the full path of the libs files)
Yes, i was having the same problem as stated before.
Thanks furtiv3 for pointing that out. Now it's working like a charm.
And a very big thanks to Vivek for creating such awesome videos.
Vivek,
Audio in this vid is bad in places; the record volume was set too high or the microphone too close to you when you were speaking.
Other than that, another great vid...
Tried to compile. get the following messages:
error A2109: only white space or comment can follow backslash (this for lines 5 & 7)
error A2006: undefined symbol : PROC (Line 11)
error A 2023: instruction operand must have size.
Running Windows 7 32bit Home Premium
Tried to locate the answer in a couple of different forums but no success.
char46
the code is ok, try to rewrite the code
the post is 20 days old, it should be solved :)
nice sharing
You're doing a great job for the scene. Keep on posting !
I guess that you should say in this video that MASM stands for the Macro Assembler and not Microsoft Assembler.
These videos rock! This one sounds like you recorded it in the sewer though.
Super good as always. You are the man!
Sir Vivek....you are the one who inspired me a lot to do
thanks for suck primers!!!
Another awesome video! Thank you vivek!
But there is something I don't understand about calling conventions. The name decoration for stdcall is:
An underscore (_) is prefixed to the name. The name is followed by the at sign (@) followed by the number of bytes (in decimal) in the argument list. Therefore, the function declared as int func( int a, double b ) is decorated as follows: _func@12
So why are you using "MessageBoxA@16" instead of "_MessageBoxA@16"? I tried to use "_MessageBoxA@16" but what I've done didn't work. So now I don't understand why msdn say that we have to use the "_" before the function's name.
Nice videos Boss