View Single Post
  #1 (permalink)  
Old 5th September, 2004, 11:41 PM
DigitalKnight's Avatar
DigitalKnight DigitalKnight is offline
Member
 
Join Date: October 2003
Location: Jefferson City, MO, USA
Posts: 99

80x86 Assembly Trouble.

I trying to write a simple assmebly program for a lab class and I can't seem to get it to work right. It'll store the string entered but it will not print it back you. The trouble maybe something simple that I just can't see right now, but I would like any help anyone can give. I'm going to bed, maybe after a nights sleep I can see what I am missing.

Thanks.

Code is as follows:

;PROGRAM 3 OF LAB 1
;FILENAME: INTRO3.ASM
;FILE FORMAT: EXE
PAGE 55,132
.386

STACK_SEG SEGMENT STACK USE16
DB 255 DUP(0)
STACK_SEG ENDS

DATA_SEG SEGMENT 'DATA' USE16
MESSAGE DB 'ECE4210/ECE7210 LAB1 PART 3',0DH,0AH
DB 'ENTER A STRING FROM KEYBORD: $'
OUTMSG DB 0DH,0AH,'THE STRING YOU JUST ENTERED IS: $'
INCHAR DB 255,255 DUP(0)
NEWLINE DB 0DH,0AH,'$'
DATA_SEG ENDS

CODE_SEG SEGMENT PARA 'CODE' PUBLIC USE16
ASSUME CS:CODE_SEG, DSATA_SEG, SS:STACK_SEG

MAIN PROC FAR
PUSH DS ;INITIATE THE PROGRAM
XOR AX,AX
PUSH AX
MOV AX,DATA_SEG
MOV DS,AX

LEA DX,MESSAGE ;PRINT MESSAGE
MOV AH,9
INT 21H

LEA DX,INCHAR
MOV AH,0AH ;READ A STRING
INT 21H

LEA DX,OUTMSG ;PRINT A MESSAGE
MOV AH,09H
INT 21H

LEA DX,INCHAR ;OUTPUT THE CHARACTER TO THE SCREEN
MOV AH,09H
INT 21H

MOV DX,OFFSET NEWLINE
MOV AH,9 ;MOVE CURSOR TO NEXT LINE
INT 21H

RET
MAIN ENDP
CODE_SEG ENDS
END MAIN
__________________
No matter how big you are, there are always bigger fish...

Main Rig: - Down
Proc: P4 2.66 Ghz Mobo: MSI MS-6701 RAM: 768 Mb DDR333 Video Card: GeForce4 Ti 4200 OS: Windows XP SP2 / Mandrake Linux 9.0
Laptop:
Proc: P4 3.06 Ghz RAM: 1280 Mb DDR400 Video Card: ATI Radion Mobility 9000 OS: Windows XP SP2

AOA Team fah
Reply With Quote