SlideServe
Menu
Préférences
© SlideServe · v2026

Memory model

mahola avatar
25 diapositives · 597 Views · Sep 02, 2014

Memory model. 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. Stack Segment.

Memory model - slide 1
01 / 25Memory model
1 / 17

Télécharger la présentation

Memory model
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  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 • ;OD=destination ;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)OH+ABCD)  (CL) • ((DS)OH+ABCD+1)(CH)

  15. XCHG (EXCHange) • Exchangfe between source operand with destination operand • Format XCHG OD,OS ;where OD=destination ;operand ;OS=source 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)OH+SUM)BX

  17. Exchange 2 variable • title Exchange Two Variables     (Exchange.asm) • .model small • .stack 100h • .data • value1 db 0Ah • value2 db 14h • .code • main proc •     mov  ax,@data      ; initialize DS register •     mov  ds,ax •     mov  al,value1     ; 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 main

  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 OD=destination ;operand ;OS=source operand ADD OD,OS OD+OS OD (if there is a carry, carry flag, CF=1)

  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 AX=1234H, BX=0001H, 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