Você está na página 1de 8

Jordan University n r

Faculty of Engineering and Technology n n o

m r e Department of Computer Engineering Spring 2010

Assembly Programs s l o m
Prepared by: Dr. Khalid A. Darabkeh p h

Program#1: o 1
DATSEG segment S e A DATA1 DB '5' DATA2 DB '9' A A DATA3 DB ? SUM DB 'yy','$'

MESSAGE1 DB 'THE LARGEST VALUE IS ','$' E MESSAGE2 DB ', THE SUM IS ','$' M SEG ENDS DATS CODE_SEG SEGMENT E ASSUME CS:CODE_SEG, DS:DATSEG S : G S N A MAIN PROC FAR T MOV AX, DATSEG MOV ES, AX MOV DS, AX MOV BL, DATA1 T F 2 .IF BL>DATA2 MOV DATA3 ,BL O MOV BH,DATA2 O A L .ELSE

MOV BH,DATA2 MOV DATA3,BH .ENDIF ;--------------------MOV DX, Offset MESSAGE1 MOV AH,09 INT 21H ;--------------------MOV AH,02 MOV DL,DATA3 INT 21H ;---------------------XOR AH,AH ADD BH,BL MOV AL,BH AAA Or AX,3030H MOV SI ,offset SUM MOV [SI],AH MOV [SI+1],AL ;----------------------MOV DX, Offset MESSAGE2 MOV AH,09 INT 21H ;Display characters starting from the most significant byte ;----------------------MOV DX, Offset SUM MOV AH,09 INT 21H MAIN ENDP

CODE_SEG END MAIN

ENDS

Program#2:
DATSEG segment DATA1 DB '1435685479' DATA2 DB ? MESSAGE1 DB 'THE LARGEST VALUE IS ','$' DATSEG ENDS CODE_SEG SEGMENT ASSUME CS:CODE_SEG, DS:DATSEG MAIN PROC FAR MOV AX, DATSEG MOV ES, AX MOV DS, AX MOV CX, 09H MOV SI, offset DATA1 MOV DH,[SI] .WHILE CX !=0 INC SI DEC CX MOV AL,[SI] .IF AL>DH MOV DH,AL .ENDIF .ENDW MOV DATA2,DH ;---------------------

MOV DX, Offset MESSAGE1 MOV AH,09 INT 21H ;--------------------MOV AH,02 MOV DL,DATA2 INT 21H

MAIN ENDP CODE_SEG END MAIN ENDS

Program#3:
DATSEG segment DATA1 DB '1435685479' DATA2 DB ? MESSAGE1 DB 'THE LARGEST VALUE IS ','$' DATSEG ENDS CODE_SEG SEGMENT ASSUME CS:CODE_SEG, DS:DATSEG MAIN PROC FAR MOV AX, DATSEG MOV ES, AX MOV DS, AX

MOV CX,09H MOV SI,offset DATA1 MOV DH,[SI]

.REPEAT INC SI DEC CX MOV AL,[SI] .IF AL>DH MOV DH,AL .ENDIF .UNTIL CX ==0 MOV DATA2,DH ;--------------------MOV DX, Offset MESSAGE1 MOV AH,09 INT 21H ;--------------------MOV AH,02 MOV DL,DATA2 INT 21H

MAIN ENDP CODE_SEG END MAIN ENDS

Program#4:
DATSEG segment DATA1 DW '12','13','33','44','66','45','87','66','23','78','98' DATA2 DW ?,'$' MESSAGE1 DB 'THE LARGEST VALUE IS ','$' DATSEG ENDS

CODE_SEG SEGMENT ASSUME CS:CODE_SEG, DS:DATSEG MAIN PROC FAR MOV AX, DATSEG MOV ES, AX MOV DS, AX

MOV CX,0AH MOV SI,offset DATA1 MOV DX,[SI] .REPEAT INC SI INC SI DEC CX MOV AX,[SI] .IF AX>DX MOV DX,AX .ENDIF .UNTIL CX ==0 ;MOV DATA2,DX : Does not work properly MOV BX,offset DATA2 MOV [BX] ,DH MOV [BX+1] ,DL ;--------------------MOV DX, Offset MESSAGE1 MOV AH,09 INT 21H ;--------------------MOV DX, Offset DATA2

MOV AH,09 INT 21H

MAIN ENDP CODE_SEG END MAIN ENDS

Program#5:
DATSEG segment DATA1 DB '123485559' SUM DW ?,'$' MESSAGE1 DB 'THE SUM IS ','$' DATSEG ENDS CODE_SEG SEGMENT ASSUME CS:CODE_SEG, DS:DATSEG MAIN PROC FAR MOV AX, DATSEG MOV ES, AX MOV DS, AX MOV CX,08H XOR AX,AX ; clear AX register MOV SI,offset DATA1 MOV AL,[SI] .REPEAT INC SI DEC CX ADD AL,[SI] AAA

OR AX,3030H .UNTIL CX ==0 MOV SI,offset SUM MOV [SI],AH MOV [SI+1],AL ;--------------------MOV DX, Offset MESSAGE1 MOV AH,09 INT 21H ;--------------------MOV DX, Offset SUM MOV AH,09 INT 21H

MAIN ENDP CODE_SEG END MAIN ENDS

The END.

Você também pode gostar