+ All Categories

mp43

Date post: 04-Jun-2018
Category:
Upload: dubstepo
View: 221 times
Download: 0 times
Share this document with a friend

of 23

Transcript
  • 8/13/2019 mp43

    1/23

    MACROS

    MASM

  • 8/13/2019 mp43

    2/23

    MACROS

    A macro is a group of instructions that perform

    a task, just as procedure performs one task

    All the instructions defined in the macro are

    inserted in the program at the point of usage

    Name of macro and any parameters associated

    with it are typed , and the assembler then

    inserts them into the program.

    Macro is faster than procedure because no

    CALL and RET

  • 8/13/2019 mp43

    3/23

    MOVE MACRO A, B

    PUSH AX

    MOV AX, B

    MOV A, AX

    POP AX

    ENDM

  • 8/13/2019 mp43

    4/23

    MOV CX,100

    MOVE VAR1, VAR2PUSH AXMOV AX, VAR2MOV VAR1, AXPOP AX

    MOV BX,VAR1

    MOVE VAR3, VAR4PUSH AXMOV AX, VAR4

    MOV VAR3, AXPOP AX

    MOV DX,VAR3ADD BX,DX

    DEC CX

  • 8/13/2019 mp43

    5/23

    SOFTWARE INTERRUPTS

  • 8/13/2019 mp43

    6/23

    ApplicationPrograms

    Command ProcessorCOMMAND.COM

    MS-DOS KernelMSDOS.SYS

    BIOSIO.SYS

    SystemH/w

    MS-DOS FUNCTIONS & BIOS CALLS

  • 8/13/2019 mp43

    7/23

    BIOS Hardware Specific

    Provided by manufacturer

    Two parts

    Resident (BIOS)

    Non-Resident (IO.SYS)

    Offers convenient way to add funcs toBIOS

  • 8/13/2019 mp43

    8/23

  • 8/13/2019 mp43

    9/23

  • 8/13/2019 mp43

    10/23

    INT NNH

    INT 21H - DOS INTERRUPT

    INT 10H BIOS INTERRUPT

  • 8/13/2019 mp43

    11/23

    INT

    Operates similar to call

    Processor first pushes the Flags

    TF, IF cleared

    Next the processor pushes the current CS contents on

    to the stack

    Next IP is pushed

  • 8/13/2019 mp43

    12/23

    Sequence of events for INT 08H

    CS:IP 0100:0200H

    Flag - 0F81H

    O D I T S Z A P C

    004FH SP-1 0FH004EH SP-2 81H

    004DH SP-3 01H004CH SP-4 00H004BH SP-5 02H

    004AH SP-6 00H

    SP Initial

    0050H

  • 8/13/2019 mp43

    13/23

    08 * 04 = 20H (32)

    00020H IP

    00022H CS

    Memory/ISR table00020H 20H00021H 00H00022H 50H

    00023H 08H

    0850H:0020H

  • 8/13/2019 mp43

    14/23

    IRET

    Used at end of ISR

    For stack handling

    004FH SP-1 0FH004EH SP-2 81H004DH SP-3 01H

    004CH SP-4 00H004BH SP-5 02H004AH SP-6 00H

    Flag 0F81H

    0100H

    0200H

    SP Final 0050H

    SP Initial

    004AH

  • 8/13/2019 mp43

    15/23

  • 8/13/2019 mp43

    16/23

    MISCELLANEOUS INSTRUCTIONS

  • 8/13/2019 mp43

    17/23

    ADDITIONAL INSTRUCTIONS

    SAHF- Store AH to Flag Register (Lower)

    LAHF- Load Flag into AH Register (Lower)

    CMC- Complement Carry Flag

    STI

    CLI XCHG DSR,SRC

  • 8/13/2019 mp43

    18/23

  • 8/13/2019 mp43

    19/23

    ADDITIONAL INSTRUCTIONS

    MOVSX DST, SRC

    MOVZX DST,SRC

  • 8/13/2019 mp43

    20/23

    ADDITIONAL INSTRUCTIONS

    SHLD DST, SRC, Count

    SHRD DST, SRC, Count

  • 8/13/2019 mp43

    21/23

  • 8/13/2019 mp43

    22/23

    ADDITIONAL INSTRUCTIONS

    BSWAP REG32

  • 8/13/2019 mp43

    23/23

    ADDITIONAL INSTRUCTIONS

    XADD

    XADD REG1,REG2


Recommended