100% found this document useful (1 vote)
613 views11 pages

8086 Microprocessor: Assembly Language Programming PPT - 8

This document provides examples of assembly language programs that demonstrate various operations using 8086 microprocessor including: 1) taking 1's complement of a 16-bit number; 2) masking off the lower byte of a 16-bit number; and 3) adding, multiplying, and dividing two 16-bit numbers. It also shows programs for moving byte strings, filling memory locations with a byte value, and scanning a byte string.

Uploaded by

Santhosh Kumar J
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
613 views11 pages

8086 Microprocessor: Assembly Language Programming PPT - 8

This document provides examples of assembly language programs that demonstrate various operations using 8086 microprocessor including: 1) taking 1's complement of a 16-bit number; 2) masking off the lower byte of a 16-bit number; and 3) adding, multiplying, and dividing two 16-bit numbers. It also shows programs for moving byte strings, filling memory locations with a byte value, and scanning a byte string.

Uploaded by

Santhosh Kumar J
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 11

8086 Microprocessor

ASSEMBLY LANGUAGE
PROGRAMMING
PPT - 8
ASSEMBLY LANGUAGE PROGRAMMING
• 1’s Complement of a 16-bit number
• Mask off the lower byte of a 16-bit number
• Addition of two, 16-bit numbers
• Multiplication of two 16-bit numbers
• Division of two 16-bit numbers
• 32 bit Division
• Sum of ‘n’ numbers
• To move a byte string of length FF from source to a
Destination
• To fill the locations 1100H to 11FFH in memory with the
byte 54H
• Scanning a byte string
1’s Complement of a 16-bit number

MOV AX, [4200H]


NOT AX
MOV [5000H],AX
HLT
Mask off the lower byte of a 16-bit number

MOV AX,[1234H]
AND AX,FF00H
MOV [5000H],AX
HLT
Addition of two, 16-bit numbers

MOV CX,0000H
MOV AX,[1100H]
MOV BX,[1102H]
ADD AX,BX
JNC GO
INC CX
GO MOV [1110H],AX
MOV [1112H],CX
HLT
Multiplication of two 16-bit numbers

MOV AX,[1234H]
MOV BX,[1100H]
MUL BX
MOV [1120H],AX (Q)
MOV [1122H],DX (R)
HLT
32- bit Division

MOV DX,[1000H]
MOV AX,[1002H]
MOV BX, [1004H]
DIV BX
MOV [1120H],AX (Q)
MOV [1122H],DX (R)
HLT
Sum of ‘n’ numbers

MOV CX,0005H
MOV SI,1200H
MOV AX,0000H
GO ADD AX,[SI]
ADD SI,02H
LOOP GO
MOV [1200H], AX
HLT
To move a byte string of length FF from source
to a Destination

MOV SI, 2000H


MOV DI, 3000H
MOV CX, 00FFH
CLD
REP MOVSB
HLT
To fill the locations 1100H to 11FFH in memory
with the byte 54H

MOV CX,0100H
MOV DI,1100H
MOV AL, 54H
CLD
REP STOSB
HLT
Scanning a string byte
MOV DI,1200H
MOV SI,1300H
MOV CX,0008H
CLD
MOV AL,05H
REPNE SCASB
DEC DI
MOV BL,[DI]
MOV [SI],BL
HLT

You might also like