This is not a blog post, per se, but rather an example program that contains basic usage of arithmetic, logical and control instructions. For this blog post, I thought that it is better to describe the example program in the program comments and not in separate paragraphs. We will write a simple program that will … Continue reading Arithmetic, Logical and Control Instructions in IA32 Assembly
This post is a part of my attempts at learning Assembly with NASM as our assembler with explanation of a simple, helloworld program. ; helloworld.nasm ; Author: HRDARJI global _start section .text _start: ; printing hello world mov eax, 0x4 mov ebx, 0x1 mov ecx, message mov edx, mlen int 0x80 ; exiting properly mov … Continue reading Hello World in Assembly
We can inspect CPU registers in a context of a running program. We will compile a simple C program and we will load the binary in gdb command line debugger. Then, we will set a breakpoint in the program. Breakpoint can be thought of halting an executing program. When we run our program, the execution … Continue reading How to read CPU registers in Ubuntu?
First and foremost, please understand that I'll be writing about Intel architecture only in detail that is sufficient for getting me started in assembly language. Three main components, or basic building blocks of a computer, that we need to know for assembly language basics are the following: CPU Memory I/O Devices CPU CPU can be … Continue reading Intel Architecture, 32 bit
Two most common terminal commands by which we can get CPU information are: lscpu cat /proc/cpuinfo Here are the example output: lscpu cat /proc/cpuinfo If you are feeling nerdy, and you want CPU information in much more detail, you can use "cpuid". "cpuid" does not come by default in Ubuntu so you have to do … Continue reading How to get CPU information in Ubuntu?