.386
DATA SEGMENT
VALUE1 DB ‘HELLO WORLD’,13,10,'$'
COUNT EQU ($-VALUE1-3)
STR1 DB 'H $'
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
XOR EDX,EDX
LEA DX,VALUE1
MOV AH,09H
INT 21H
MOV CX,COUNT
LEA SI,VALUE1
LOOP2: MOV BL,[SI]
CALL DISP
LEA DX,STR1
MOV AH,09H
INT 21H
INC SI
LOOP LOOP2
MOV AH,4CH
INT 21H
DISP PROC NEAR
PUSH CX
PUSH DS
PUSH SI
MOV CH,2
MOV AL,BL
LOOP1: MOV CL,4
ROR BL,CL
MOV AL,BL
AND AL,0FH
CMP AL,10
JB NEXT
ADD AL,07H
NEXT:
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
DEC CH
JNZ LOOP1
POP SI
POP DS
POP CX
RET
DISP ENDP
CODE ENDS
END START