.model small .data MyString db "Whatever the string is " BlankString db " " Str_Length dw 23 ; 17h ROW db 0 COL db 0 Color db 0Eh .stack 100h .code main: ;START of Program ;call procedures here call Initsegs ; Setup half of String pointers mov cx,56 ; Setup CX as Counter for LOOP command Redo_it: call PrintColorStr ; Print call delay ; CountDown call BlankStr ; Blank inc Col ; Increment COL Coordinate loop Redo_it ; Loops to Redo_It CX times call exit ; When loop to Redo_it finished..Exit ; REMEMBER : PUSH POP AX BX CX DX SI DI BP ;================= PROC DELAY push ax bx mov bx, 01000H reload_ax: mov ax, 0FFFFh dec_ax: dec ax jnz dec_ax dec bx jnz reload_ax pop bx ax RET ENDP DELAY ;==================== PROC Initsegs push ax mov ax,@DATA mov ds,ax mov es,ax pop ax RET ENDP InitSegs ;==================== PROC Exit ; Function 4c of INT21H is Exit to DOS push ax mov ah, 4ch INT 21H pop ax RET ENDP Exit ;==================== PROC PrintColorStr ; Function 9 of INT 10H push ax bx cx dx bp mov ah,13h mov al, 1 ; Expect BL to have Color Attribute mov bl, Color mov bh, 0 ;Page Memory 0 mov dh, ROW mov dl, COL mov cx, STR_LENGTH mov bp, OFFSET MyString INT 10H pop bp dx cx bx ax RET ENDP PrintColorStr ;==================== PROC BlankStr ; Function 9 of INT 10H push ax bx cx dx bp mov ah,13h mov al, 1 ; Expect BL to have Color Attribute mov bl, 0 mov bh, 0 ;Page Memory 0 mov dh, ROW mov dl, COL mov cx, STR_LENGTH mov bp, OFFSET BlankString INT 10H pop bp dx cx bx ax RET ENDP BlankStr ;==================== end main; MAIN