Posts

ALP to demonstrate rotate operations

ASSUME CS:CODE,DS:DATA DATA SEGMENT A DW 9223H DATA ENDS CODE SEGMENT START:  MOV AX,DATA  MOV DS,AX    ;add ax,00h instruction is clear carry flag   MOV AX,A  ROR AX,1  ADD AX,00H  MOV AX,A  RCR AX,1   ADD AX,00H  MOV AX,A  ROL AX,1   ADD AX,00H  MOV AX,A  RCL AX,1  MOV AH,4CH  INT 21H CODE ENDS END START

ALP to demonstrate shift operations

ASSUME CS:CODE,DS:DATA DATA SEGMENT A Dw 54H DATA ENDS CODE SEGMENT START:  MOV AX,DATA  MOV DS,AX  ;add ax,00h instruction is clear auxiliary flag   add ax,00h  MOV AX,A  SHL AX,1  add ax,00h  MOV AX,A  SAL AX,1  add ax,00h  MOV AX,A  SHR AX,1  add ax,00h  MOV AX,A  SAR AX,1  MOV AH,4CH  INT 21H CODE ENDS END START

ALP to demonstrate logical operations

Image
ASSUME CS:CODE,DS:DATA DATA SEGMENT A DB 4H B DB 7H DATA ENDS CODE SEGMENT START:  MOV AX,DATA  MOV DS,AX  MOV AL,A  MOV BL,B  AND AL,BL  MOV AL,A  MOV BL,B  OR AL,BL  MOV AL,A  MOV BL,B  XOR AL,BL  MOV AL,A  NOT AL  MOV AH,4CH  INT 21H CODE ENDS END START OUTPUT: IN DEBUG MODE

ALP to demonstrate even or odd number using procedure

ASSUME CS:CODE,DS:DATA DATA SEGMENT STR1 DB "ENTER NUMBER:$" STR2 DB 0AH,"NUMBER IS EVEN$" STR3 DB 0AH,"NUMBER IS ODD$" DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX LEA DX,STR1 MOV AH,09H INT 21H MOV AH,01H INT 21H SUB AL,30H ; al has the number call evenodd MOV AH,4CH INT 21H evenodd proc near  MOV BL,02H  DIV BL CMP AH,00H JNE E LEA DX,STR2 MOV AH,09H INT 21H         JMP O   E: LEA DX,STR3 MOV AH,09H   INT 21H   O:     ret evenodd endp  CODE ENDS END START

ALP to evaluate arithmetic expression

ASSUME CS:CODE,DS:DATA ; EVALUATION OF EXPRESSION E= (A+B)-(C+D) DATA SEGMENT STR DB 0AH,"ENTER NUMBER :$" STR2 DB 0AH,"$" NUM DB ? DATA ENDS CODE SEGMENT START:  MOV AX,DATA  MOV DS,AX  MOV CX,4H  LEA SI,NUM  L:  LEA DX,STR  MOV AH,09H  INT 21H  MOV AH,01H  INT 21H  SUB AL,30H  MOV [SI],AL  INC SI  LOOP L  LEA SI,NUM  MOV AL,[SI]  ADD AL,[SI+1]  MOV BL,[SI+2]  ADD BL,[SI+3]  ;NEW LINE START  LEA DX,STR2  MOV AH,09H  INT 21H  ;NEW LINE END  SUB AL,BL  ADD AL,30H  MOV DH,00H  MOV DL,AL  MOV AH,02H  INT 21H  MOV AH,4CH  INT 21H CODE ENDS END START

ALP to display all prime numbers from 1 to 9

ASSUME CS:CODE,DS:DATA DATA SEGMENT DIVIDEND DB ? DIVISOR DB ? NUM DB 9h DATA ENDS CODE SEGMENT START:  MOV AX,DATA  MOV Ds,AX  ALL:  MOV AL,NUM  dec AL  MOV DIVIDEND,AL  MOV NUM,AL  MOV CH,00H  MOV CL,DIVIDEND  DEC CL  MOV DL,00H;FLAG  L:  MOV DIVISOR,CL  MOV AH,00H  MOV AL,DIVIDEND  MOV BL,DIVISOR  DIV BL  CMP AH,00H  JNE SKIP  CMP DIVISOR,01H;TO SKIP DIVISOR AS 1  JE SKIP1  INC DL;FLAG  SKIP1:  SKIP:  LOOP L DONE:  CMP DL,00H  JE ELSE1   ;NOT PRIME  JMP DIS  ELSE1:  MOV DH,00H  MOV DL,DIVIDEND  ADD DL,30H  MOV AH,02H  INT 21H DIS: cmp num,01h je ex CMP NUM,02H JNE ALL      ex: MOV AH,4CH INT 21H CODE ENDS END START

ALP to check the given number is prime or not.

ASSUME CS:CODE,DS:DATA DATA SEGMENT STR1 DB "PRIME NUMBER$" STR2 DB "NOT A PRIME NUMBER$" DIVIDEND DB 07H ;assuming that 7 is the given number DIVISOR DB ? DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX mov ch,00h MOV CL,DIVIDEND DEC CL MOV DL,00H;FLAG L: MOV DIVISOR,CL MOV AH,00H MOV AL,DIVIDEND MOV BL,DIVISOR DIV BL CMP Ah,00H JnE SKIP cmp DIVISOR,01H JE S INC DL;FLAG S: SKIP: LOOP L DONE: CMP DL,00H      JE ELSE1                     LEA DX,STR2         JMP DISPLAY                  ELSE1:             LEA DX,STR1         DISPLAY:             MOV AH,09H              INT 21H MOV AH,4CH INT 21H CODE ENDS END START