Prac Questions
Prac Questions
Prac Questions
Sum of series
DATA SEGMENT
ARRAY DB 10H,02H,03H,04H,03H, 05H, 06H,
10H,02H,03H
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV CL, 0AH
MOV AL,00H
MOV SI,OFFSET ARRAY
UP: ADD AL,[SI]
INC SI
LOOP UP
MOV [SI+1], AL
MOV AX, 4C00H
INT 21H
CODE ENDS
END START
LARGEST DB 00H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV DX,DATA
MOV DS,DX
MOV CX,09H
MOV SI ,OFFSET ARRAY
MOV AL,[SI]
UP:INC SI
CMP AL,[SI]
JNC NEXT ;CHANGE
MOV AL,[SI]
NEXT:DEC CX
JNZ UP
MOV LARGEST,AL ; AL=78h
MOV AX,4C00H
INT 21H
CODE ENDS
END START
Small:
DATA SEGMENT
ARRAY DB 15H,45H,08H,56H,78H
SMALLEST DB 00H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV DX,DATA
MOV DS,DX
CALL SMALLEST_NO
MOV AX,4C00H
INT 21H
SMALLEST_NO PROC
MOV CX,04H
MOV AL,[SI]
UP:INC SI
CMP AL,[SI]
JC NEXT
MOV AL,[SI]
NEXT:DEC CX
JNZ UP
RET
SMALLEST_NO ENDP
CODE ENDS
END START
ARRAY DB 06H,09H,22H,02H,07H,10H,11H,12H,13H,14H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MOV DS,AX
MOV BL,0AH
MOV CL,09H
CMP AL,[SI+1]
JNC DOWN
XCHG AL,[SI]
LOOP STEP2
DEC BL
JNZ STEP1
MOV AH,4CH
INT 21H
CODE ENDS
END START
Ascending:
DATA SEGMENT
NUM DB 06H,09H,22H,02H,07H
RESULT DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MOV DS,AX
MOV CL,05H
LOOP1: LEA BX,NUM
MOV CH,04H
INC BX
CMP AL,[BX]
JC DOWN
MOV DL,[BX]
MOV [BX],AL
DEC BX
MOV [BX],DL
INC BX
DOWN: DEC CH
JNZ LOOP2
DEC DL
JNZ LOOP1
INT 3
CODE ENDS
END START
Finding ODD, EVEN
DATA SEGMENT
NUM DB 9H
ODD DB 0
EVEN_NO DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV BL,NUM
JMP EXIT
Block transfer
DATA SEGMENT
block1 db 10 dup(10h)
block2 db 10 dup(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV DS,DX
LEA SI,BLOCK1
LEA DI,BLOCK2
MOV CX,000AH
CLD
MOV [DI],AL
INC SI
INC DI
DEC CX
JNZ BACK
MOV AH,4CH
INT 21H
CODE ENDS
END START
String operations-
1. length
DATA SEGMENT
STR1 DB ‘STUDENT$’ LENGTH_STRING DB?
DATA ENDS
CODE SEGMET
ASSUME CS:CODE, DS:DATA
Start:
MOV AX, DATA MOV DS, AX
MOV AL, ‘$’
MOV CX, 00H
MOV SI, OFFSET STR1
BACK: CMP AL, [SI]
JE DOWN
INC CL
INC SI
JMP BACK
DOWN: MOV LENGTH_STRING, CL
MOV AX, 4C00H
INT 21H
CODE ENDS
END START
2. Reverse
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV DX,DATA
MOV DS,DX
LEA SI,STRING
MOV CL,0FH
LEA DI,REV
ADD DI,0FH
UP:MOV AL,[SI]
MOV [DI],AL
INC SI
DEC DI
LOOP UP
MOV AH,4CH
INT 21H
CODE ENDS
END START
3. Compare
Data segment
sstr db 'Solapur$'
dstr db 'Solapuz$'
slen db 00h
dlen db 00h
Data ends
Code segment
Assume CS:Code,DS:Data
start : mov DX,Data
mov DS,DX
LEA SI,sstr
L1 : mov AL,[SI]
CMP AL,'$'
JZ exit1
INC slen
INC SI
JMP L1
exit1:
LEA DI,dstr
L2 : mov AL,[DI]
CMP AL,'$'
JZ exit2
INC dlen
INC DI
JMP L2
exit2:
mov AL,slen
mov BL,dlen
CMP AL,BL
JNZ exit3
LEA SI,sstr
LEA DI,dstr
L3 : mov AL,[SI]
mov BL,[DI]
CMP AL,BL
JNZ exit3
INC SI
INC DI
DEC slen
JNZ L3
JMP END1
exit3:
mov AH,4CH
INT 21H
End1:Code Ends
End start
4. Concatenation
DATA SEGMENT
ST1 DB " Maharashtra board$"
LEN1 DB 0
ST2 DB " of technical
Education$" LEN2 DB 0
R DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, ,DS:DATA, ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SI, OFFSET ST1 ; Length of the first string in LEN1
MOV AL,'$'
NEXT1: CMP AL,[SI]
JE EXIT1
INC LEN1
INC SI
JMP NEXT1
EXIT1: MOV SI, OFFSET ST2 ; Length of the second string in LEN2 NEXT2: CMP
AL,[SI]
JE EXIT2
INC LEN2
INC SI
JMP NEXT2
EXIT2: MOV SI, OFFSET ST1 ; copy first string to R
MOV DI, OFFSET R
MOV CL, LEN1
REP MOVSB
MOV SI, OFFSET ST2 ; Concat second string to R
MOV CL, LEN2
REP MOVSB
MOV AH,4CH
INT 21H
CODE ENDS
END START
5. Copy
Data segment
str1 db 'Mic8086$'
str2 db ?
data ends
code segment
assume cs:code,ds:data
start:
mov dx,data
mov ds,dx
LEA si,str1
LEA di,str2
l1: mov al,[si]
cmp al,'$'
jz exit1
mov [di],al
inc si
inc di
jmp l1
exit1:
mov ah,4ch
int 21h
code ends
end start
Count numbers of '1' and '0’ in 16 bit number
CODE SEGMENT
ASSUME CS:CODE
START:
MOV AX,1321H
MOV CL,16H
MOV BX,0000H
MOV DX,0000H
L2: RCR AX,01H
JNC L1
INC BL
JMP L3
L1:INC DL
JMP L3
L3: DEC CL
JNZ L2
MOV AH,4CH
INT 21H
CODE ENDS
END START