Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

2 questions

Status
Not open for further replies.

DoomMaster

Programmer
Mar 5, 2004
9
0
0
US
First question is about the forums.

I had an account before called MrDoomMaster, but for some reason all my threads I made were removed and now when I try to log on I get the message "There has been a problem with your account registration. Contact Tek-Tips support to discuss the issue"

Why is it doing this? I emailed Tek Tips already, they aren't answering back.



Secondly, I'm working on an assembler program, and I can't seem to figure out why it isn't working.

The code consists of a loop, which is supposed to exit once CL becomes greater than the immediate value of E0H

Inside of the loop, the first instruction is to set the cursor to a column that doesn't change, and a row that increments by 1. This supports the automatic line switching to allow lines to be placed below each other.

After the cursor is moved one line below, then an instruction is given to display a name + an offset. This offset is also incremented by 20H (because that's the length of each string, check out the data segment. All strings are the same length, so each is 20H in space)

Try to run and compile this program, and see if you can get it to work. I honestly have tried everything, I can't get it to switch lines when I try to move the cursor. Also I seem to have run out of registers to store numbers in for the counters. bah so confusing, I'm so lost

Code:
	PAGE	60,132
	TITLE	L9RCD (EXE) LAB 9
;------------------------------------------------
;--------TABS-SHOULD-BE-SET-TO-4-SPACES----------
;------------------------------------------------
STACK	SEGMENT	PARA	STACK	'Stack'
		DW		32 DUP (0)
STACK	ENDS
;------------------------------------------------
DATASEG	SEGMENT	PARA	'Data'
S0		DB		'***   ***  ***  **** ***  *****$'
S1		DB		'*  * *   * *  * *    *  *   *  $'
S2		DB		'***  *   * ***  ***  ***    *  $'
S3		DB		'*  * *   * *  * *    *  *   *  $'
S4		DB		'*  *  ***  ***  **** *  *   *  $'
S5		DB		'***   **  ***** *    **** *   *$'
S6		DB		'*  * *  *   *   *    *     * * $'
S7		DB		'*  * ****   *   *    ***    *  $'
S8		DB		'*  * *  *   *   *    *      *  $'
S9		DB		'***  *  * ***** **** ****   *  $'
DATASEG	ENDS
;------------------------------------------------
;------------------------------------------------
CODESEG	SEGMENT	PARA	'Code'
MAIN	PROC	FAR
		ASSUME	SS:STACK,DS:DATASEG,CS:CODESEG
		MOV		AX,DATASEG
		MOV		DS,AX

		MOV		AX,0600H
		MOV		BH,14H
		MOV		CX,0000H
		MOV		DX,184FH
		INT		10H				;SCROLL SCREEN::F=RED:B=BLUE
		
		;MOV		DH,8			;SET ROW COUNTER
		MOV		CL,00H			;SET LOOP COUNTER
		
DLOOP:	MOV		AH,02H
		MOV		BH,00H
		MOV		DH,10			;INCREMENT ROW COUNTER
		MOV		DL,14
		INT		10H				;SET CURSOR
		
		MOV		AH,09H
		LEA 	DX,[S0]
		INT		21H				;DISPLAY DATALINE
		
		ADD		CL,20H			;INCREMENT DATALINE COUNTER
		
		CMP		CX,00E0H
		JAE		DLOOP			;LOOP TO PRINT NEXT DATALINE

		MOV		AX,4C00H
		INT		21H
MAIN	ENDP
CODESEG	ENDS
		END		MAIN
;------------------------------------------------
;------------------------------------------------
 
OOPS, I'm sorry... that code was wrong lol

Here's an update:

[/code]
PAGE 60,132
TITLE L9RCD (EXE) LAB 9
;------------------------------------------------
;--------TABS-SHOULD-BE-SET-TO-4-SPACES----------
;------------------------------------------------
STACK SEGMENT PARA STACK 'Stack'
DW 32 DUP (0)
STACK ENDS
;------------------------------------------------
DATASEG SEGMENT PARA 'Data'
S0 DB '*** *** *** **** *** *****$'
S1 DB '* * * * * * * * * * $'
S2 DB '*** * * *** *** *** * $'
S3 DB '* * * * * * * * * * $'
S4 DB '* * *** *** **** * * * $'
S5 DB '*** ** ***** * **** * *$'
S6 DB '* * * * * * * * * $'
S7 DB '* * **** * * *** * $'
S8 DB '* * * * * * * * $'
S9 DB '*** * * ***** **** **** * $'
DATASEG ENDS
;------------------------------------------------
;------------------------------------------------
CODESEG SEGMENT PARA 'Code'
MAIN PROC FAR
ASSUME SS:STACK,DS:DATASEG,CS:CODESEG
MOV AX,DATASEG
MOV DS,AX

MOV AX,0600H
MOV BH,14H
MOV CX,0000H
MOV DX,184FH
INT 10H ;SCROLL SCREEN::F=RED:B=BLUE

MOV DH,08H ;SET ROW COUNTER
MOV CL,00H ;SET LOOP COUNTER

DLOOP: MOV AH,02H
MOV BH,00H
ADD DH,01H ;INCREMENT ROW COUNTER
MOV DL,14H
INT 10H ;SET CURSOR

MOV AH,09H
LEA DX,[S0]
INT 21H ;DISPLAY DATALINE

ADD CL,20H ;INCREMENT DATALINE COUNTER

CMP CX,00E0H
JAE DLOOP ;LOOP TO PRINT NEXT DATALINE

MOV AX,4C00H
INT 21H
MAIN ENDP
CODESEG ENDS
END MAIN
;------------------------------------------------
;------------------------------------------------
[/code]
 
OMG... dumb tags!
Code:
	PAGE	60,132
	TITLE	L9RCD (EXE) LAB 9
;------------------------------------------------
;--------TABS-SHOULD-BE-SET-TO-4-SPACES----------
;------------------------------------------------
STACK	SEGMENT	PARA	STACK	'Stack'
		DW		32 DUP (0)
STACK	ENDS
;------------------------------------------------
DATASEG	SEGMENT	PARA	'Data'
S0		DB		'***   ***  ***  **** ***  *****$'
S1		DB		'*  * *   * *  * *    *  *   *  $'
S2		DB		'***  *   * ***  ***  ***    *  $'
S3		DB		'*  * *   * *  * *    *  *   *  $'
S4		DB		'*  *  ***  ***  **** *  *   *  $'
S5		DB		'***   **  ***** *    **** *   *$'
S6		DB		'*  * *  *   *   *    *     * * $'
S7		DB		'*  * ****   *   *    ***    *  $'
S8		DB		'*  * *  *   *   *    *      *  $'
S9		DB		'***  *  * ***** **** ****   *  $'
DATASEG	ENDS
;------------------------------------------------
;------------------------------------------------
CODESEG	SEGMENT	PARA	'Code'
MAIN	PROC	FAR
		ASSUME	SS:STACK,DS:DATASEG,CS:CODESEG
		MOV		AX,DATASEG
		MOV		DS,AX

		MOV		AX,0600H
		MOV		BH,14H
		MOV		CX,0000H
		MOV		DX,184FH
		INT		10H				;SCROLL SCREEN::F=RED:B=BLUE
		
		MOV		DH,08H			;SET ROW COUNTER
		MOV		CL,00H			;SET LOOP COUNTER
		
DLOOP:	MOV		AH,02H
		MOV		BH,00H
		ADD		DH,01H			;INCREMENT ROW COUNTER
		MOV		DL,14H
		INT		10H				;SET CURSOR
		
		MOV		AH,09H
		LEA 	DX,[S0]
		INT		21H				;DISPLAY DATALINE
		
		ADD		CL,20H			;INCREMENT DATALINE COUNTER
		
		CMP		CX,00E0H
		JAE		DLOOP			;LOOP TO PRINT NEXT DATALINE

		MOV		AX,4C00H
		INT		21H
MAIN	ENDP
CODESEG	ENDS
		END		MAIN
;------------------------------------------------
;------------------------------------------------
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top