of 23
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