- #1
mimzy
- 6
- 0
Hello, so i have a problem with my assembly code. I want to clear the screen of the DOS and display the string input in the first line. I decided to make a loop that will run 2000 times and fill the space with [20H, which is the ascii for space bar] however, It clears out my message as well and I thought of skipping the first 40 loops so that it'll leave my string[max 40 chars] as it is and proceed to clear my screen; however, I've tried many ways but I can't get it right D: here's here code i have atm
MOV DX,OFFSET BUF1 ; OFFSET=STORE IN THE SAME FLOOR "BUF1"
MOV BUF1,40 ; MAX CHARACTERS IN BUF1 = 40
MOV AH,0AH ; READS ONE LINE FROM KEYBOARD
INT 21H
[this is not relevant, it just creates, writes, reads, and closes a file lol :P but i thought it might help a little D:]
MOV DX,OFFSET BUF2
MOV AH,0AH
INT 21H
MOV CX,2000 ; START OF CLEARING RUN LOOP 2000 TIMES
LUCY: MOV AH,06H ; START OF LOOP, CALL DISPLAY FUNCTION 06H
MOV DL,20H ; 20H=' ' [SPACE IN ASCII]
INT 21H
LOOP LUCY ; LOOP END
I know Assembly Code isn't very popular :( that's why it's so hard to find a solution for my problem Q.Q and i have to seek for help here. If no one knows it, ill understand :c
thanks :D
MOV DX,OFFSET BUF1 ; OFFSET=STORE IN THE SAME FLOOR "BUF1"
MOV BUF1,40 ; MAX CHARACTERS IN BUF1 = 40
MOV AH,0AH ; READS ONE LINE FROM KEYBOARD
INT 21H
[this is not relevant, it just creates, writes, reads, and closes a file lol :P but i thought it might help a little D:]
MOV AH,3CH ; CREATION 3CH
XOR CX,CX
MOV DX,OFFSET FILE1
INT 21H ; CREATION FILE END
MOV BX,AX
MOV AH,40H ; WRITING 40H
MOV CX,40 ; MAX WRITING SIZE = 40
MOV DX,OFFSET BUF1
INT 21H ; WRITING FILE END
MOV AH,3EH
INT 21H ; CLOSE FILE
MOV AH,3DH ; OPEN 3DH
MOV AL,0
MOV DX,OFFSET FILE1
INT 21H ; OPEN FILE END
MOV BX,AX
MOV AH,3FH ; READING 3FH
MOV CX,40 ; MAX CHARACTERS READ = 40
MOV DX,OFFSET BUF2
INT 21H ; READING FILE END
MOV AH,3EH ; CLOSE 3EH
INT 21H ; CLOSE FILE END
XOR CX,CX
MOV DX,OFFSET FILE1
INT 21H ; CREATION FILE END
MOV BX,AX
MOV AH,40H ; WRITING 40H
MOV CX,40 ; MAX WRITING SIZE = 40
MOV DX,OFFSET BUF1
INT 21H ; WRITING FILE END
MOV AH,3EH
INT 21H ; CLOSE FILE
MOV AH,3DH ; OPEN 3DH
MOV AL,0
MOV DX,OFFSET FILE1
INT 21H ; OPEN FILE END
MOV BX,AX
MOV AH,3FH ; READING 3FH
MOV CX,40 ; MAX CHARACTERS READ = 40
MOV DX,OFFSET BUF2
INT 21H ; READING FILE END
MOV AH,3EH ; CLOSE 3EH
INT 21H ; CLOSE FILE END
MOV AH,0AH
INT 21H
MOV CX,2000 ; START OF CLEARING RUN LOOP 2000 TIMES
LUCY: MOV AH,06H ; START OF LOOP, CALL DISPLAY FUNCTION 06H
MOV DL,20H ; 20H=' ' [SPACE IN ASCII]
INT 21H
LOOP LUCY ; LOOP END
I know Assembly Code isn't very popular :( that's why it's so hard to find a solution for my problem Q.Q and i have to seek for help here. If no one knows it, ill understand :c
thanks :D