Lec 28 Programming Model of x86 Architecture (Arif Butt @ PUCIT)

 

Layout of memory models (flat, segmented) and register set file of Intel 8080, 80386, x86-64. Logical to physical address translation for segmented memory model.

Email: arif@pucit.edu.pk

Web: https://www.arifbutt.me/

Sample Codes/Resources: https://bitbucket.org/arifpucit/coal-repo/src/

Lec 29 Hello World in x86 64 Assembly (Arif Butt @ PUCIT)

 

Overview of microprocessor families and their corresponding assembly languages. Toolchain and programming environment for x86-64 assembly programming. Running the first hello world assembly program.

Email: arif@pucit.edu.pk

Web: https://www.arifbutt.me/

Sample Codes/Resources: https://bitbucket.org/arifpucit/coal-repo/src/

Lec 30 Structure of x86 64 Assembly Program (Arif Butt @ PUCIT)

 

A discussion on the x86-64 assembly language instruction format and the overall structure of assembly program including the contents of .data, .bss and .text section. A scuba diving in the sea of how a system call is made.

Email: arif@pucit.edu.pk

Web: https://www.arifbutt.me/

Sample Codes/Resources: https://bitbucket.org/arifpucit/coal-repo/src/

Lec 31 Debugging C Programs with GDB (Arif Butt @ PUCIT)

 

A review of the C-compilation process. What is a debugger? Why use gdb? How to compile, load, and run a program inside gdb and get information about the running process. Getting help inside gdb, setting breakpoints, watch points, stepping through the code, examining and modifying variables, convenience variables, and setting conditional breakpoints.

Email: arif@pucit.edu.pk

Web: https://www.arifbutt.me/

Sample Codes/Resources: https://bitbucket.org/arifpucit/coal-repo/src/

Lec 32 Data Types and Endianness (Arif Butt @ PUCIT)

 

Usage of different data types and special tokens in NASM. Practically understand about the endianness of a machine

Email: arif@pucit.edu.pk

Web: https://www.arifbutt.me/

Sample Codes/Resources: https://bitbucket.org/arifpucit/coal-repo/src/

Lec 33 Data Transfer Instructions and Process Stack (Arif Butt @ PUCIT)

 

Usage of different move instructions like mov, movzx, movsx, lea and xchg. A discussion on the working of the process stack and the push and pop instructions.

Email: arif@pucit.edu.pk

Web: https://www.arifbutt.me/

Sample Codes/Resources: https://bitbucket.org/arifpucit/coal-repo/src/

Lec 34 Memory Addressing Modes (Arif Butt @ PUCIT)

 

Theoretical concepts and pros and cons of addressing modes used by different processors. Addressing modes used by x86-64 like Base-Index-Sale-Displacement

Email: arif@pucit.edu.pk

Web: https://www.arifbutt.me/

Sample Codes/Resources: https://bitbucket.org/arifpucit/coal-repo/src/

Lec 35 Arithmetic Instructions – I (Arif Butt @ PUCIT)

A recap of the x86-64 register set and the programming toolchain. Summary of major categories of x86-64 instructions. A practical demo on the use of add, adc, sub, sbb, inc, dec, neg, cmp, clc, stc, and cmc. A discussion on how the flags are effected after these arithmetic instructions

Email: arif@pucit.edu.pk

Web: https://www.arifbutt.me/

Sample Codes/Resources: https://bitbucket.org/arifpucit/coal-repo/src/

Lec 36 Arithmetic Instructions – II (Arif Butt @ PUCIT)

 

A recap of x86-64 register set and the programming toolchain. Summary of major categories o x86-64 instructions. A practical demo on the use of mul, div, imul, idiv instructions. A discussion on how the flags are effected after these arithmetic instructions

Email: arif@pucit.edu.pk

Web: https://www.arifbutt.me/

Sample Codes/Resources: https://bitbucket.org/arifpucit/coal-repo/src/