You are on page 1of 6

# ASSIGNMENT#

#PROBLEM1#

VOWEL COUNT

WRITE AN ASSEMBLY PROGRAMME TO DETRMINE THE NUMBER OF


VOWELS IN A 20 BYTE LONG STRING

# CODE #:
CODE SEGMENT
ASSUME
CS:CODE,DS:CODE

LEA DI,VOWELS
MOV CX,05H
REPNE SCASB ;SCANS
DATA IN ES:DI WITH DS:SI

ORG 1000H;
JNE UNTIL_
INC CNT
MOV DS,AX;
INITIALIZING DS WITH
RANDOM VALUES
MOV BX,14H;
MOV ES,AX;

UNTIL_:
DEC BX;
JNE REPEAT_
MOV DX,CNT;

LEA DI,STRING;
MOV SI,DI;
CLD
REPEAT_:
; LOAD A STRING CHAR
LODSB ; LOADS DATA
IN DS:SI

HLT
STRING DB 'NOYBIT K
MONDAL EEEA' ;
DECLARING THE STRING
VOWELS DB 'AEIOU'
CNT DW 0
CODE ENDS
END

#OUTPUT#:

Here 20 BYTE string NOYBIT K MONDAL EEEA has 8 VOWELS which will be
shown in DX register.. SO, DX shows 8h.

#PROBLEM 2#

STRING PALINDROME

WRITE AN ASSEMBLY PROGRAMME TO DETERMINE IF A STRING IS


PALLINDROME, STRING SIZE WILL BE USER DEPENDENT

# CODE :
CODE SEGMENT
ASSUME
CS:CODE,DS:CODE
ORG 1000H
STRING DB 20 DUP(0)
CNT DW 0

POP SI;
INC SI;
SUB DX,2;
CMP BL,AL;
JNE LEV1

TEMP_: MOV DX,1;


MOV CX,CNT;
JMP LEV2
LEV1:
MOV DX,0;
MOV CX,CNT;
LEV2: HLT

INC CNT
MAIN ENDP

MAIN PROC

LOOP REPEAT1_
JMP TEMP_

MOV DS,AX
MOV ES,AX
EVEN_:

READSTR PROC

LEA DI,STRING
CALL READSTR
MOV SI,DI
CLD
PUSH BX
SHR BX,1;
POP BX
JNC EVEN_

ODD_:
MOV CX,BX;
DEC CX;
MOV DX,CX;
SHR CX,1;
REPEAT1_:
PUSH SI
LODSB; AL LOADED
FROM 1024
MOV BL,AL;
POP SI; 1024
PUSH SI
ADD SI,DX
LODSB ;AL AGAIN
LOADED FROM 1030

#OUTPUT#:

MOV CX,BX;
SHR CX,1;
MOV DX,BX;
DEC DX;
REPEAT2_:
PUSH SI
LODSB; AL LOADED
FROM 1024
MOV BL,AL;
POP SI; 1024
PUSH SI
ADD SI,DX
LODSB ;AL AGAIN
LOADED FROM 1030
POP SI;
INC SI;
SUB DX,2;
CMP BL,AL;
JNE LEV1
INC CNT
LOOP REPEAT2_

PUSH AX
PUSH DI
CLD
XOR BX,BX
MOV AH,1H
INT 21H
WHILE1:
CMP AL,0DH
JE ENDWHILE1
CMP AL,8H
JNE ELSE1
DEC DI
DEC BX
JMP READ
ELSE1:
STOSB
INC BX
READ:
INT 21H
JMP WHILE1
ENDWHILE1:
POP DI
POP AX
RET
READSTR ENDP
CODE ENDS
END

As Input ABCDCBA is a palindrome DX gives 1h and CX register stores the


total CHARACTERS in the PALINDROME in SYMMETRY

#PROBLEM 3# Working process of


stepper motor
DESCRIBE HOW STEPPER MOTOR RUNS IN HALF AND FULL STEPS

ANS: Stepper motor is a device which can transfer incoming


pulse to stepping motion of a predetermined angular
displacement. Angular displacement can be made proportional to
number of pulses.
To make motor shaft turn, first one electromagnet is given power
which makes gear teeth magnetically attracted to
electromagnets teeth. So gear teeth are aligned to first
electromagnet. When next teeth electromagnet is on and first one
is off , gear rotates slightly to be aligned with the next one.

For half stepping,


One coil excitation

Two coil excitation

For full stepping,

ADDITIONAL:
CODE:
;THIS PROBLEM PERFORMS A 48 BIT
NUMBER BY 16 BIT NUMBER DIVISION

DIV BX
MOV Q, AX

;Q+2:Q=A+4:A+2:A/BX, R =
REMAINDER
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
MOV BX, 0F015H
MOV DX, A+4
MOV AX, A+2
DIV BX
MOV Q+2, AX
MOV AX, A

OUTPUT:

MOV R, DX
HLT
ORG 50H
A DW 1536H, 4563H, 1235H
ORG 60H
Q DW ?, ?
ORG 70H
R DW ?
CODE ENDS
END

You might also like