KEMBAR78
Simple Programs | PDF | Technology & Engineering
0% found this document useful (0 votes)
48 views22 pages

Simple Programs

The document discusses 16 assembly language programs covering operations like incrementing, decrementing, complementing, adding, subtracting, multiplying, dividing, finding the sum and average of numbers, calculating factorials, and sorting arrays. The programs demonstrate how to perform these operations on 8-bit and 16-bit numbers using assembly language instructions.

Uploaded by

Jasmine K
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views22 pages

Simple Programs

The document discusses 16 assembly language programs covering operations like incrementing, decrementing, complementing, adding, subtracting, multiplying, dividing, finding the sum and average of numbers, calculating factorials, and sorting arrays. The programs demonstrate how to perform these operations on 8-bit and 16-bit numbers using assembly language instructions.

Uploaded by

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

Assembly Language

Programming(ALP)
8086

186
Program 1: Increment an 8-bit number

• MOV AL, 05H Move 8-bit data to AL.


• INC AL Increment AL.
After Execution AL = 06H

Program 2: Increment an 16-bit number

• MOV AX, 0005H Move 16-bit data to AX.


• INC AX Increment AX.
After Execution AX = 0006H

Presented by C.GOKUL,AP/EEE , Velalar College of Engg & Tech, Erode 187


Program 3: Decrement an 8-bit number

• MOV AL, 05H Move 8-bit data to AL.


• DEC AL Decrement AL.
After Execution AL = 04H

Program 4: Decrement an 16-bit number

• MOV AX, 0005H Move 16-bit data to AX.


• DEC AX Decrement AX.
After Execution AX = 0004H

188
Program 5: 1’s complement of an 8-bit number.

• MOV AL, 05H Move 8-bit data to AL.


• NOT AL Complement AL.
After Execution AL = FAH
Program 6: 1’s complement of a 16-bit
number.
• MOV AX, 0005H Move 16-bit data to AX.
• NOT AX Complement AX.
After Execution AX = FFFAH

189
Program 7: 2’s complement of an 8-bit number.
• MOV AL, 05H Move 8-bit data to AL.
• NOT AL Complement AL.
• INC AL Increment AL
After Execution AX = FAH + 1 = FB
Program 8: 2’s complement of a 16-bit
number.
• MOV AX, 0005H Move 16-bit data to AX.
• NOT AX Complement AX.
• INC AX Increment AX
After Execution AX = FFFAH + 1 = FFFB

190
Program 9: Add two 8-bit numbers
MOV AL, 05H Move 1st 8-bit number to AL.
MOV BL, 03H Move 2nd 8-bit number to BL.
ADD AL, BL Add BL with AL.
After Execution AL = 08H

Program 10: Add two 16-bit numbers


MOV AX, 0005H Move 1st 16-bit number to AX.
MOV BX, 0003H Move 2nd 16-bit number to BX.
ADD AX, BX Add BX with AX.
After Execution AX = 0008H

191
Program 11: subtract two 8-bit numbers
MOV AL, 05H Move 1st 8-bit number to AL.
MOV BL, 03H Move 2nd 8-bit number to BL.
SUB AL, BL subtract BL from AL.
After Execution AL = 02H

Program 12: subtract two 16-bit numbers


MOV AX, 0005H Move 1st 16-bit number to AX.
MOV BX, 0003H Move 2nd 16-bit number to BX.
SUB AX, BX subtract BX from AX.
After Execution AX = 0002H
192
Program 13: Multiply two 8-bit unsigned
numbers.
MOV AL, 04H Move 1st 8-bit number to AL.
MOV BL, 02H Move 2nd 8-bit number to BL.
MUL BL Multiply BL with AL and the result will
be in AX.

Program 14: Multiply two 8-bit signed


numbers.
MOV AL, 04H Move 1st 8-bit number to AL.
MOV BL, 02H Move 2nd 8-bit number to BL.
IMUL BL Multiply BL with AL and the result will
be in AX.

193
Program 15: Multiply two 16-bit unsigned
numbers.
MOV AX, 0004H Move 1st 16-bit number to AL.
MOV BX, 0002H Move 2nd 16-bit number to BL.
MUL BX Multiply BX with AX and the result will
be in DX:AX {4*2=0008=> 08=> AX , 00=> DX}

Program 16: Divide two 16-bit unsigned


numbers.
MOV AX, 0004H Move 1st 16-bit number to AL.
MOV BX, 0002H Move 2nd 16-bit number to BL.
DIV BX Divide BX from AX and the result will be in AX & DX
{4/2=0002=> 02=> AX ,00=>DX}
(ie: Quotient => AX , Reminder => DX )

Presented by C.GOKUL,AP/EEE , Velalar College of Engg & Tech, Erode 194


Detailed coding
16 BIT ADDITION

195
Detailed coding
16 BIT SUBTRACTION

196
16 BIT MULTIPLICATION

197
16 BIT DIVISION

198
SUM of N numbers
MOV AX,0000
MOV SI,1100
MOV DI,1200
MOV CX,0005 5 NUMBERS TO BE TAKEN SUM
MOV DX,0000
L1: ADD AX,[SI]
INC SI
INC DX
CMP CX,DX
JNZ L1
MOV [1200],AX
HLT 199
Average of N numbers
MOV AX,0000
MOV SI,1100
MOV DI,1200
MOV CX,0005 5 NUMBERS TO BE TAKEN AVERAGE
MOV DX,0000
L1: ADD AX,[SI]
INC SI
INC DX
CMP CX,DX
JNZ L1
DIV CX AX=AX/5(AVERAGE OF 5 NUMBERS)
MOV [1200],AX
HLT Presented by C.GOKUL,AP/EEE , Velalar College of Engg & Tech,
200Erode
FACTORIAL of N
MOV CX,0005 5 Factorial=5*4*3*2*1=120
MOV DX,0000
MOV AX,0001
L1: MUL CX
DEC DX
CMP CX,DX
JNZ L1
MOV [1200],AX
HLT

201
ASCENDING ORDER

202
203
DECENDING ORDER

Note: change the coding JNB L1 into JB L1 in the LINE 10


204
LARGEST, smallest NUMBER IN AN
ARRAY

205
LARGEST NUMBER

206
SMALLEST NUMBER

207

You might also like