0% found this document useful (0 votes)
87 views

Microprocessor and Interfacing Assignment-3

The document contains code and output for 3 questions on microprocessor and interfacing assignment. The first question takes binary input from the user and converts it to hexadecimal output. The second question converts a given number to its hexadecimal equivalent. The third question implements a function to reverse a given string and searches for a substring in a main string.

Uploaded by

Sriharsha Chinta
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)
87 views

Microprocessor and Interfacing Assignment-3

The document contains code and output for 3 questions on microprocessor and interfacing assignment. The first question takes binary input from the user and converts it to hexadecimal output. The second question converts a given number to its hexadecimal equivalent. The third question implements a function to reverse a given string and searches for a substring in a main string.

Uploaded by

Sriharsha Chinta
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/ 16

Microprocessor and Interfacing Assignment-3

Name: Sriharsha Chinta

Reg.No: 20BCE2049

Slot: L11+L12

Question, code and output-1

.model small

.stack 100h

.data

m1 db 'enter binary num $'

m2 db ' hexa num $'

m3 db ' invalid $ '

.code

main proc

mov ax , @data

mov ds , ax

clear :

mov ah , 2

mov dl , 0dh

int 21h

mov dl , 0ah
int 21h

mov ah , 9

lea dx , m1

int 21h

xor bh , bh

input :

mov ah , 1

int 21h

mov ch , al

cmp ch , 0dh

je print

cmp ch,'0'

jl exit

cmp ch,'1'

jg exit

and ch , 15

shl bh , 1

or bh , ch

jmp input

print :
mov ah , 2

mov dl , 0dh

int 21h

mov dl , 0ah

int 21h

mov ah , 9

lea dx , m2

int 21h

mov ah , 2

cmp bh,9

jle number

cmp bh , 15

jle charecter

number :

add bh , 48

mov ah,2

mov dl , bh

int 21h

jmp clear

charecter :

add bh , 55

mov ah,2

mov dl , bh

int 21h
jmp clear

exit:

mov ah , 2

mov di , 0dh

int 21h

mov dl , 0ah

int 21h

mov ah, 9

lea dx , m3

int 21h

mov ah , 4ch

int 21h

main endp

end main

Question, code and output-2

.model small

.stack 100h

.data

NUM DB 10 DUP('$')

RES DB 40 DUP('$')

SIZE DB 0
H0 DB '0000$'

H1 DB '0001$'

H2 DB '0010$'

H3 DB '0011$'

H4 DB '0100$'

H5 DB '0101$'

H6 DB '0110$'

H7 DB '0111$'

H8 DB '1000$'

H9 DB '1001$'

HA DB '1010$'

HB DB '1011$'

HC DB '1100$'

HD DB '1101$'

HE DB '1110$'

HF DB '1111$'

.code

main proc

MOV AX,@data

MOV DS,AX

LEA SI,NUM

MOV CX,0

loop_1:

MOV AH,1h

INT 21h

CMP AL,13

JE NA

INC CL

CMP CL,10
JE NA

CMP AL,57

JG ELSEA1

SUB AL,48

JMP BOTHA1

ELSEA1:

SUB AL,55

BOTHA1:

MOV AH,0H

MOV BL,AL

MOV [SI],AL

INC SI

JMP loop_1

NA:

MOV SIZE,CL

LEA SI,NUM

label_1:

MOV AL,[SI]

CALL val

INC SI

DEC CL

CMP CL,0

JG label_1

MOV AH,02

MOV DX,10

INT 21H

MOV DX,13

INT 21H
MOV CH,0

MOV AH,0

LEA SI,NUM

MOV CL,SIZE

label_2:

MOV AL,[SI]

MOV BL,15

SUB BL,AL

MOV AL,BL

CALL val

INC SI

DEC CL

CMP CL,0

JG label_2

MOV AH,02

MOV DX,10

INT 21H

MOV DX,13

INT 21H

main endp

val proc

CMP AL,0h

JNE N0

LEA DX,H0

JMP LAST

N0:

CMP AL,1

JNE N1

LEA DX,H1

JMP LAST
N1:

CMP AL,2

JNE N2

LEA DX,H2

JMP LAST

N2:

CMP AL,3

JNE N3

LEA DX,H3

JMP LAST

N3:

CMP AL,4

JNE N4

LEA DX,H4

JMP LAST

N4:

CMP AL,5

JNE N5

LEA DX,H5

JMP LAST

N5:

CMP AL,6

JNE N6

LEA DX,H6

JMP LAST

N6:

CMP AL,7

JNE N7

LEA DX,H7

JMP LAST
N7:

CMP AL,8

JNE N8

LEA DX,H8

JMP LAST

N8:

CMP AL,9

JNE N9

LEA DX,H9

JMP LAST

N9:

CMP AL,10

JNE N10

LEA DX,HA

JMP LAST

N10:

CMP AL,11

JNE N11

LEA DX,HB

JMP LAST

N11:

CMP AL,12

JNE N12

LEA DX,HC

JMP LAST

N12:

CMP AL,13

JNE N13

LEA DX,HD

JMP LAST
N13:

CMP AL,14

JNE N14

LEA DX,HE

JMP LAST

N14:

CMP AL,15

JNE N15

LEA DX,HF

JMP LAST

N15:

RET

LAST:

MOV AH,09h

INT 21h

ret

val endp

A)

B)
Question, code and output-3

A)
.MODEL SMALL

.STACK 100H

.DATA

STRING DB 'This is a sample string', '$'

.CODE

MAIN PROC FAR

MOV AX,@DATA

MOV DS,AX

CALL REVERSE
LEA DX,STRING

MOV AH, 09H

INT 21H

MOV AH, 4CH

INT 21H

MAIN ENDP

REVERSE PROC

MOV SI, OFFSET STRING

MOV CX, 0H

LOOP1:

MOV AX, [SI]

CMP AL, '$'

JE LABEL1

PUSH [SI]

INC SI

INC CX

JMP LOOP1

LABEL1:

MOV SI, OFFSET STRING

LOOP2:
CMP CX,0

JE EXIT

POP DX

XOR DH, DH

MOV [SI], DX

INC SI

DEC CX

JMP LOOP2

EXIT:

MOV [SI],'$ '

RET

REVERSE ENDP

END MAIN

B)
.MODEL SMALL

.STACK 100H

.DATA

org 100h

.data

buf1 DB "Enter String :::: $"

buf2 DB 0dh,0ah,"Enter Substring to search :::: $"


buf3 DB 0dh,0ah,"Substring Found $",1

buf4 DB 0dh,0ah,"Substring not Found...$"

str DB 120,120 DUP(?)

str_len DW 0

substr DB 120,120 DUP (?)

substr_len DW 0

counter DW 0

.code

mov ax,@DATA

mov DS,ax

lea dx,buf1

call Display

mov dx,offset str

mov ah,0Ah

int 21h

mov bl,[str+1]

mov str_len,bx

lea dx,buf2

call display

mov dx,offset substr

mov ah,0Ah

int 21h

lea SI,str

add SI,2

lea DI,substr

add DI,2

mov bx,substr_len

cmp str_len,bx

jg G

mov cx,bx
G:

mov cx,str_len

L:

lodsb

cmp al,0Dh

je final

cmp al,' '

jne next

final:

cmp counter,0

je exit

mov counter,0

lea DI,substr

add DI,2

jmp next1

next:

dec SI

next1:

cmpsb

je h

inc counter

h:

LOOP L

exit:

cmp counter,0

je Found

lea dx,buf4

call Display

jmp terminate
Found:

lea dx,buf3

call Display

terminate:

mov ah,4ch

int 21h

ret

Display PROC

mov ah,09h

int 21h

ret

Display ENDP

You might also like