Memory model - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Memory model

Description:

MOV CX,[ABCD] ((DS)OH ABCD) (CL) ((DS)OH ABCD 1) (CH) XCHG (EXCHange) ... Can involve 8 and 16 bit data but size must be equivalent ... – PowerPoint PPT presentation

Number of Views:44
Avg rating:3.0/5.0
Slides: 26
Provided by: FSK6
Category:
Tags: memory | model | size

less

Transcript and Presenter's Notes

Title: Memory model


1
Memory model
2
Data Segment
  • Contain all variable declaration
  • To declare data segment, directive .DATA,
    followed by variable or constant declaration
  • E.g.
  • .DATA
  • WORD1 DW 2
  • WORD2 DW 5
  • MSG DB INI ADALAH MESEJ
  • MASK EQU 10010010B

3
Stack Segment
  • Is used to reserve one memory block to store
    stack
  • Definition syntax
  • .STACK size (size is optional)
  • E.g .STACK 100H
  • The above statement will prepare 100h byte for
    stack area

4
Code Segment
  • Contain program instructions
  • Syntax declaration
  • .CODE name where name is
  • the chosen of the segment
  • Instruction is in procedure form

5
  • Simple procedure declaration
  • name PROC
  • procedure body
  • name ENDP
  • where name (procedure name) PROC and ENDP
    (pseudo-op which describe procedure)

6
  • Eg
  • .CODE
  • MAIN PROC
  • main procedure instruction
  • MAIN ENDP
  • other procedure starts here

7
Combination of segments
  • One general form programming model using memory
    model. .SMALL can be constructed
  • .MODEL SMALL
  • STACK 100H
  • .DATA
  • data declaration starts here
  • .CODE
  • MAIN PROC
  • instruction starts here
  • MAIN ENDP
  • other procedures starts here
  • END MAIN
  • Last line must be END, followed by main procedure
    name

8
8086 Instruction Set
9
Instruction Types
  • Data transfer instruction
  • Arithmetic instruction
  • Bit control instruction
  • Compare instruction
  • Jump/branch instruction
  • Loop instruction

10
Data Transfer Instruction
  • Used to transfer data
  • Between one internal register with other internal
    register
  • Between internal register with one storage
    location in memory
  • Between one internal register with immediate
    value
  • Instructions such as MOV and XCHG

11
MOV (MOVe)
  • Transfer from source operand to destination
    operand
  • Format
  • MOV OD, OS where OS source operand
  • ODdestination operand
  • Execution example

12
Valid source and destination operand
13
  • To transfer both source and destination operand
    which is the memory space can be done with
    instruction
  • MOV AX,BETA copy BETA content into AX
  • MOV ALPHA,AX copy AX content into ALPHA
  • Transger must be between equivalent data size,
    example
  • MOV AL,1234H is not allowed because
    insert data with 16-bit size into
    8-bit size register

14
  • Example copy MOV instruction with register
    addressing mode and direct addressing mode
  • Register addressing mode
  • MOV AX,BX ? (BX) ? (AX)
  • Direct addressing mode
  • MOV CX,ABCD ? ((DS)OHABCD) ? (CL)
  • ((DS)OHABCD1)?(CH)

15
XCHG (EXCHange)
  • Exchangfe between source operand with destination
    operand
  • Format
  • XCHG OD,OS where ODdestination
    operand OSsource operand
  • Instruction execution XCHG AX,DX

16
  • Can involve 8 and 16 bit data but size must be
    equivalent
  • For instruction involve memory space like
  • XCHG SUM,BX
  • exchange is as
  • XCHG SUM,BX ? ((DS)OHSUM)??BX

17
Exchange 2 variable
title Exchange Two Variables     (Exchange.asm) .m
odel small .stack 100h .data value1 db 0Ah value2 
db 14h .code main proc     mov  ax,_at_data       in
itialize DS register     mov  ds,ax     mov  al,va
lue1      load the AL register     xchg value2,al
      exchange AL and value2     mov  value1,al  
    store AL back into value1     mov  ax,4C00h 
      exit program     int  21h main endp end mai
n
18
Arithmetic Instruction
  • Involve additional instruction (ADD), subtraction
    (SUB), multiplication (MUL) and division (DIV)
  • Also contain this instruction variation
  • For instruction such as ADC instruction including
    carry flag instruction

19
ADD (ADDition)
  • Perform addition between source operand and
    destination operand and result is stored in
    operand destination
  • Format
  • ADD OD,OS where ODdestination
    operand
  • OSsource operand
  • ADD OD,OS
  • ODOS ?OD
  • (if there is a carry, carry flag,
  • CF1)

20
ADD instruction
  • Source operand can be register, immediate value
    or memory
  • Destination operand can be register or memory
  • Only one operand can be memory operand

21
ADD Instruction Examples
.data membyte db 25 memword dw 36 doubleVal
dd 12340000h .code add al,5 add bx,ax add
eax,edx add membyte,al add memword,bx add
doubleVal,edx
22
  • Valid destination operand and source operand
    combination

23
Instruction example
  • If AX1234H, BX0001H, therefore
  • ADD AX,BX is as in the table below

24
SUB Instruction
  • Format SUB OD, OS where OS source operand
  • OD
    destination operand
  • Subtract source operand from destination operand
  • Source operand can be register, immediate value
    or memory
  • Destination operand can be register or memory
  • Only one operand can be memory operand

25
SUB Instruction Example
.data membyte db 25 memword dw 36 doubleVal
dd 12340000h .code sub al,5 sub bx,ax sub
eax,edx sub membyte,al sub memword,bx sub
doubleVal,edx
Write a Comment
User Comments (0)
About PowerShow.com