Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS-401 Computer Architecture & Assembly Language Programming

Similar presentations


Presentation on theme: "CS-401 Computer Architecture & Assembly Language Programming"— Presentation transcript:

1 CS-401 Computer Architecture & Assembly Language Programming
Lecture-8 Addressing Modes Branching

2 In the Last Lecture We discussed memory addresses

3 Addressing Modes Offset Addressing ; Default segment = ds
mov ax, [0x1234] ; word move mov ah, [0x1234] ; byte move mov byte[0x1234], 10 mov word[0x1234], 10

4 Addressing Modes Base Addressing ; Default segment = ds mov ax, [bx]
mov byte [bx], 10 mov word [bx], 10 ; Default segment = ss mov ax, [bp] mov byte [bp], 10 mov word [bp], 10

5 Addressing Modes Index Addressing ; Default segment = ds mov ax, [si]
mov byte [di], 10 mov word [si], 10

6 Base + Offset Addressing
Addressing Modes Base + Offset Addressing ; Default segment = ds mov ax, [bx+0x0100] mov byte [bx+0x100], 10 mov word [bx+0x100], 10 ; Default segment = ss mov byte [bp+0x10], 10 mov word [bp+0x100], 10

7 Index + Offset Addressing
Addressing Modes Index + Offset Addressing ; Default segment = ds mov ax, [si+0x0100] mov byte [di+0x100], 10 mov word [di+0x100], 10 mov byte [si+0x10], 10 mov word [si+0x0100], 10

8 Base + Index Addressing
Addressing Modes Base + Index Addressing ; Default segment = ds mov ax, [bx+si] mov byte [bx+si], 10 mov word [bx+di], 10 ; Default segment = ss mov byte [bp+si], 10 mov word [bp+di], 10

9 Base + Index + Offset Addressing
Addressing Modes Base + Index + Offset Addressing ; Default segment = ds mov ax, [bx+si+0x0100] mov byte [bx+si+0x0100], 10 mov word [bx+di+0x0100], 10 ; Default segment = ss mov byte [bp+si+0x0100], 10 mov word [bp+di+0x0100], 10

10 Addressing Modes General Form [base + index + offset]

11 Illegal Addressing Example mov al, [bl] ; Address cannot be 8-bit
; has to be 16-bit

12 Illegal addressing

13 Illegal Addressing Example
mov ax, [bx-si] ; Registers cannot be ; subtracted

14 Illegal Addressing Example
mov ax, [bx+bp] ; Two bases cannot be ; used in one addressing

15 Illegal Addressing Example
mov ax, [si+di] ; Two indices cannot be ; used in one addressing

16 Physical Address Calculation
[cs:bx+si+0x0700] BX = 0x0100 SI = 0x0200 CS = 0x1000 Effective Address = EA = Base + Index + Offset EA = 0x x x0700 = 0x0A00 Physical Address = Segment*0x10+EA = 0x1000*0x10+0xA00 = 0x10A00

17 Physical Address Calculation
[bx+0x7000] BX = 0x9100 DS = 0x1500 Effective Address = EA = Base + Index + Offset = 0x x x07000 = 0x10100 ; 17-bits ! = 0x0100 ; Segment wrap ; around

18 Physical Address Calculation
[bx+0x7000] BX = 0x9100 DS = 0x1500 Effective Address = EA = 0x0100 ; Segment wrap ; around Physical Address = Segment*0x10+EA = 0x1500*0x10+0x100 = 0x15100

19 Physical Address Calculation
[bx+0x0100] BX = 0x0100 DS = 0xFFF0 Effective Address = EA = Base + Index + Offset = 0x x x0100 = 0x0200 Physical Address = Segment*0x10+EA = 0xFFF0*0x10+0x0200 = 0x ; 21-bits ! = 0x ; memory wrap ; around

20 CMP Subtracts the source (src) from destination (dest)
Does not change contents of src or dest. Affects AF,CF,OF,PF,SF and ZF. The relation is of destination to source.

21 Conditional Jumps jz ;jump if zero [ZF=1] Jnz ;jump if not zero [ZF=0]
Example cmp ax, bx jz label1

22 Conditional Jumps je ;jump if equal [same as jz]
Jne ;jump if not equal [same as jnz]

23 Conditional Jumps jc ;jump if carry [CF=1]
Jnc ;jump if not carry [CF=0] Example add ax, bx jc label1 sub ax, bx jnc label1

24 Conditional Jumps ja ;jump if above [ZF = 0 and CF=0]
jb ;jump if below [CF=1] unsigned integers jl ;jump if less [SF <> OF=0] jg ;jump if greater [ZF = 0 and SF=OF] signed integers

25 Conditional Jumps jae ;jump if above or equal
jbe ;jump if below or equal jge ;jump if greater or equal jle ;jump if less or equal jno ;Jump if not overflow jns ; Jump if not sign

26 Renamed Conditional Jumps
JNBE  JA JNB  JAE JNAE  JB JNA  JBE JZ  JE JNLE  JG JNL  JGE JNGE  JL JNG  JLE JNZ  JNE JPO  JNP JPE  JP

27 Conditional Jumps jcxz ;jump if the cx register is zero [cx=0]


Download ppt "CS-401 Computer Architecture & Assembly Language Programming"

Similar presentations


Ads by Google