Computer_architecture_lab
Computer_architecture_lab
Lab Assignment
8. Write a program in Assembly Language to store five numbers in array and display it.
AH AL
BH BL
CH CL
DH DL
Registers
PROGRAM-2
// ASSSEMBLY LANGUAGE PROGRAM FOR LOGICAL OPERATION
#include<stdio.h>
#include<conio.h> int main()
{
clrscr();
asm MOV AX, 10 asm MOV
BX, 2 asm OR AX ,BX
printf("VALUE OF OR OF 10 , 2 IS %d\n",_AX); asm
MOV AX, 10
asm MOV BX, 2 asm AND
AX ,BX
printf"VALUE OF AND OF 10 , 2 IS %d\n",_AX); asm
MOV AX, 10
asm MOV BX, 2 asm XOR
AX ,BX
printf("VALUE OF XOR OF 10 , 2 IS %d\n",_AX);
getch(); return 0;
}
PROGRAM-3
//PROGRAM TO IMPLEMENT IF STATEMENT
// THE PROGRAM WILL NEGATE THE INTEGER IF IT IS NEGEATIVE
//THE ALGORITHM IS
//If AX < 0 Then
//Replace AX by -AX
#include<stdio.h>
#include<conio.h> int main()
{
int z; clrscr();
printf("Enter a number");
scanf("%d",&z);
//ENDIF
// if AX < 0
asm mov AX,z; // to move the value of z to ax
asm CMP AX, 0 // compare the value in ax with zero
asm JNL END_IF //jump to label END_IF if it is not less than zero
4 GoutamSanyal , Asstant Professor , CA/IT., YSM
LAB MANUAL
//then
asm NEG AX; // negate the value in ax END_IF:
printf("%d",_AX); return 0;
}
Using Emulator
Emulator Instalation
.STACK
.DATA
.CODE
Output
Emulate
Run
.data
.stack 100H
.code
MAIN PROC
MOV AX ,@DATA
MOV DS,AX
LEA DX,MSG
MOV AH,9
INT 21H MOV
AH,1 INT 21H
MOV BL,AL
INT 21H MOV
CL,AL ADD
BL,CL SUB
BL,48 MOV
AH,2 MOV
DL,BL INT
21H
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
.STACK 100H
.DATA
NUMBER DB 10 DUB(?)
MAIN PROC
MOV AX ,@DATA
MOV DS,AX
XOR BX,BX
MOV CX,5
MOV AH,1
FOR:
INT 21H
MOV NUMBER[BX],AL
INC BX
LOOP FOR
XOR BX,BX
MOV CX,5
PRINTN
MOV AH,2
FOR2:
MOV DL,NUMBER[BX]
INT 21H
INC BX
LOOP FOR2
MOV AH, 4CH
INT 21H MAIN
ENDP
END MAIN
.MODEL SMALL
.STACK 100H
.DATA
.CODE
BEGIN:
MOV AX ,@DATA
MOV DS ,AX
AGAIN:
END BEGIN
Compiler Explorer