A new series on x64 Assembly language. In this vid, we’ll look at few general aspects of ASM, before diving in and coding a few simple examples.
I wanted to redo my early ASM vids for a while, and I hope this series is as fun as the original one was, plus I hope I’m able to explain a little better the second time round.
Visual Studio 2017 Community:
https://www.visualstudio.com/downloads/
Support What’s a Creel? on Patreon:
https://www.patreon.com/whatsacreel
FaceBook:
https://www.facebook.com/whatsacreel/
Music Channel:
https://www.youtube.com/channel/UC2nWRGqPL6O-Lm8mexWhISQ
Amazon Auto Links: No products found.
it shows an error entry point is not defined, what do i do?
Happy that you started this series again. I will follow along and hope you will answer the queries. 🙂
And I wish you will complete this tutorial series.
I believe MainCRT Startup is Common Runtime Startup that is defined in a header file, and called by the OS instead of Main( ), but the Main( ) function is defined within it. Including the Namespace inturn includes the predefined MainCRT( ) which allows a simple C, C++ file to compile without errors.
Don’t quote me on this as it is something I read 10 years back.
It may also be a MACRO define#
Ok Google ain’t bad.
Here is a MessageBox Example and it works without any other cpp files too !!! Entry point was still set to “main”
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat, stdcall
option casemap :none
extrn MessageBoxA@16 : PROC
extrn ExitProcess@4 : PROC
.data
HelloWorld db “Hello There!”, 0
.code
main:
lea eax, HelloWorld
mov ebx, 0
push ebx
push eax
push eax
push ebx
call MessageBoxA@16
push ebx
call ExitProcess@4
end main
end
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Can U also recomend some good assembly books?
I really love your videos, looking forward to this (revamped) series!
Hi, i’m new to Assembly programming, out of curiosity why MASM instead of NASM or GNU Assembler? I read that NASM OR GNU are better.
I’m so happy to see you making videos again!
It’s hard to find language tutorials that don’t think you’re new to programming,
I know what a variable is god dammit.
Anyway, I’m excited for more assembly!
Great to see you back! Can I make a request? If you ever get to the SIMD stuff, it would be awesome if you wrote a practical example maybe a vector library since that’s where most people try to use it for in games. When I tried using it, I found that additions/subtractions are easy, but dot products not so much, and a lot of times you want to access a certain component so you end up with lots of memory reads/writes which kind of nullifies the benefits. If you could talk about how to do that efficiently that’d be awesome!
That series comes perfectly timed for.
You are amazing man. Please keep your video tutorial.
And can you make videos about windows API, pleeeeeeease?
I think that the most fun way of integrating assembly into C++ is doing so called “Just In Time” assembly with a library like Xbyak. The best part is that it allows us to optimize using run-time data.
You simply cannot do more with anything else. ALL other languages compile their code into machine code instructions, and that is precisely what Assembly works with directly.
I used to use it back in my DOS programming days with C. I used it to access the graphics screen, draw them etc. Usually by writing C functions and putting inline assembly into them. I miss those days to be honest. Inline is fun, but I really want to dive into pure assembly. I guess I just like the challenge. I used to code in pure assembly in my C64 days, 6502 assembly was so easy and fun to work with! 😉
And I finally googled “Creel”: “Creel (basket), a type of basket used in fly fishing.” 😉 I can die now, I know what it is.
Thank you for this video.
Thank you very much! Really excited about this series
It’s great to see you doing ASM tutorials again!
Your earlier ones have helped me a lot, and they were lots of fun. I hope you’ll still keep the old ones around after you’re done with this new series.
Great job! Number of shows on youtube only proves that generally: “knowledge is not well-endowed”. Compare number of shows of any professional tutorial like f.e. “Udacity Intro to parallel programming” to some youngs playing online mentally destructive stuff. Thank you for videos.
Hi, I have a question, do you have to run this in a native 64 bit machine or you can do it in a 32 bit pc?
Good tutorial bro…keep going. And please give more explanations over registers and their usage(rax, rbx, etc.). And for god sake! your keyboard and you bashing on it is a little bit too loud 😉
Chris as always absolute gold mate, YESSSSS! keep em coming, enough said love your stuff.
Congratulations on your new tutorial series!!!
I love this language but sadly I’ve drifted from programming in general, pursuing other interests. However, it’s incredibly enjoyable and inspiring to hear someone talk about something that they love and know so much about with such passion.
I’ve been watching your videos for a long time and I’ve always admired your enthusiasm.
Anyway, best of luck and thanks for the videos!!!
The output I get is: ‘ the result is: 00007FF768E91433 Anyone know what I’m doing wrong?
If you added the needed versions of visual studio ide, windows versions ect right at the start of the videos(instead of part way in) it would be great so people can download it while you talk. leaving us prepared for your video presentation!
thank you for these videos!
Hi! Easily the best tutorial to get into this. I cannot tell you how much garbage I had to sift through to find this. One thing: I can’t get visual studio to stop closing the damn output window outside of setting a break point or system(“PAUSE”) – how did you get your window to stay open in the tutorial?
Watched most of the original videos back in the day. I’ll watch the new too.
I have a couple of advices. Keep the unnecessary talk out – takes too much time. Stick to the essence. Keep the charatars big – no need to see all these windows/OpenOffice toolbars – unnecessary information on the screen makes concentration more difficult.
A good format for teaching videos are the videos by Kenny Kerr on Pluralsight.
Muchas Gracias!!! Explicas muy bien
You talk so much…
😀 Please continue this series!
excited, wet, nervous, adventurous, sensitive, those are my feelings for this serious creel. i hope you can show us some impressive asm coding, maybe your self-modifying stuff during the course of this tutorial? well dont hold back baby, this is your tutorial 😉
Even though i’m a real beginner, I really love your videos. It’s very informative and I thank you for posting these videos on YouTube.
As M suggested i set the Entry Point as main and i didn’t need a CPP file. Hope to see more asm videos soon.
Can we call windows functions like MessageBox directly from the assembly program ?
Great videos!
What IDE would you recommend for Linux?
Cool man, and thanks a lot.
Here is an OS that was made with Assembly language.
https://en.wikipedia.org/wiki/KolibriOS ,It is x86 though(32bit) http://www.kolibrios.org/en/
If you wanna try it out, then download it and extract(unzip) it : http://builds.kolibrios.org/eng/latest-iso.7z (might need 7z app for extraction)
Install Virtual Box or VMware Player or Qemu, then run that file with it.
https://www.virtualbox.org/
https://youtu.be/9xg9_75WoA8?t=1m48s
This OS is great, it got games, apps, tools….etc. Even it got Assembly tools(IDE….etc.)
Good explained
Hey, is it a good idea to follow this tutorial and follow Paul Carter’s assembly book at the same time ?
Great Spanish at the end! “Adios”. Cool! hahahaha
Cool video. Where do you get a list of operators available for your CPU?
It’s great and thanks.
As an assembly coder shouldn’t you have a full neck beard?
did u just start 3 new series within a week?