ASSEMBLY LANGUAGE PROGRAMMING

Wednesday, January 28, 2009

8086 Programming: TITLE STRING COMPARE AS STRLEN PROGRAM .MODEL SMALL .STACK 100H .DATA MSG DB 'ENTER FIRST STRING=$' MSG1 DB 'ENTER SECOND NUMERE=$' STRING1 DB 100 DUP ('$') STRING2 DB 100 DUP ('$') STR DB 'EQUAL$' STR1 DB 'GREATER$' STR2 DB 'SMALL$' CRLF DB 0DH,0AH,'$' NUM1 DB ? NUM2 DB ? .CODE MAIN PROC MOV AX,@DATA MOV DS,AX MOV ES,AX LEA DX,MSG ;DISPLAY PROMPT FOR FIRST DTRING MOV AH,9H INT 21H LEA DI,STRING1 ;READ FIRST STRING CALL READ_STR MOV CX,BX ADD CL,30H MOV NUM1,CL LEA DX,CRLF ;PRINT NEWLINE MOV AH,9 INT 21H MOV AH,02H MOV DL,NUM1 INT 21H LEA DX,CRLF ;PRINT NEWLINE MOV AH,9 INT 21H LEA DX,STRING1 MOV AH,9H INT 21H LEA DX,CRLF ;PRINT NEWLINE MOV AH,9 INT 21H LEA DX,MSG1 ;DISPLAY PROMPT FOR SECOND NUMBER MOV AH,9H INT 21H LEA DI,STRING2 ;READ SECOND STRING CALL READ_STR MOV CX,BX ;MOV NUMBER OF CHAR IN STRING2 TO CX ADD CL,30H MOV NUM2,CL LEA DX,CRLF ;PRINT NEWLINE MOV AH,9 INT 21H MOV AH,02H MOV DL,NUM2 INT 21H LEA DX,CRLF ;PRINT NEWLINE MOV AH,9 INT 21H LEA DX,STRING2 MOV AH,9H INT 21H ;CLD ;LEA SI,STRING1 ;LEA DI,STRING2 ;REPE CMPSB MOV AL,NUM1 CMP AL,NUM2 JNE GO JMP SHOW GO: JNS STR1_G JS STR_l SHOW: LEA DX,STR MOV AH,9H INT 21H JMP EXIT STR1_G: LEA DX,STR1 MOV AH,9H INT 21H JMP EXIT STR_L: LEA DX,STR2 MOV AH,9H INT 21H JMP EXIT EXIT: MOV AH,4CH INT 21H MAIN ENDP READ_STR PROC PUSH AX PUSH DI CLD XOR BX,BX MOV AH,01H INT 21H NEWLINE: CMP AL,0DH JE NEWLINE_END CMP AL,08H JNE ELSE1 DEC DI DEC BX JMP READ ELSE1: STOSB ;STORE CHAR TO STRING INC BX READ: INT 21H JMP NEWLINE NEWLINE_END: POP DI POP AX RET READ_STR ENDP END MAIN

0 comments:

Visitors

PlugIn.ws - Free Hit Counter, Web Site Statistics, Traffic Analysis

  © Blogger template Leaving by Ourblogtemplates.com 2008

Back to TOP