| Stickstoff Junkie
Registriert seit: 06.07.2004
Beiträge: 3.814
| AW: Assembler Programm gesucht ! sicher assembler, hier ist der source: Code: .286p
MaxString Equ 81
Code Segment Byte Public
Code Ends
Data Segment Word Public
Data Ends
Stak Segment Word Stack
DW 256 DUP (?)
Stak Ends
Fake Segment Para Public
Fake Ends
Code Segment
Assume CS:Code,DS:Data,ES:Nothing,SS:Stak
Push ES
Mov BX,Seg Data
Mov DS,BX
Push DS
Push DS
Mov DI,0
Lea BX,ES:[81h]
GetTail:
Mov AL,ES:[BX]
Cmp AL,13
Je GotTail
Mov Command$[DI],AL
Inc DI
Inc BX
Jmp GetTail
GotTail:
Mov Command$ [DI],0
Pop DS
Pop ES
Cld
Mov SI,Offset Command$ + 1
Mov DI,Offset Command$
Mov CX,80
Rep Movs Byte Ptr [DI],Byte Ptr ES:[SI]
Pop ES
Mov BX,Seg Data
Mov DS,BX
Mov BX,Seg Fake
Mov AX,CS
Sub BX,AX
Add BX,16
Mov AH,4AH
Int 21h
Push DS
Pop AX
Mov ES,AX
Mov DefSeg,AX
Mov $DataSeg,AX
Call GetCursor
Mov SI,Offset COMMAND$
Call Coutstring
Call SetCursor
Call LineFeed
Mov AL,0
Mov AH,4Ch
Int 21h
QuitAPP:
Mov AH,4Ch
Xor AL,AL
Int 21h
GetCursor Proc Near
Mov AH,3
Xor BH,BH
Int 10h
Xor AX,AX
Mov AL,DL
Inc AL
Mov $Xcur,AX
Mov AL,DH
Inc AL
Mov $Ycur,AX
Ret
GetCursor Endp
SetCursor Proc Near
Mov DX,$Xcur
Dec DL
Mov AX,$Ycur
Mov DH,AL
Dec DH
Mov AH,2
Int 10h
Ret
SetCursor Endp
Len Proc Near
Push CX
Push SI
Push DI
Mov DI,SI
Xor AL,AL
Mov CX,0ffffh
Cld
Repnz Scasb
Not CX
Dec CX
Mov AX,CX
Pop DI
Pop SI
Pop CX
Ret
Len Endp
Coutstring Proc Near
Call Len
Push AX
Mov CX,AX
Cmp CX,0
Jle PS_3
Mov BX,$Attr
Mov AX,$Ycur
Mov DI,$Xcur
Push DS
Push ES
Dec AX
Dec DI
Cmp DI,0
Jg PS_1
Xor DI,DI
PS_1:
Mov DX,80
Mul DX
Add DI,AX
Shl DI,1
Mov AX,0B000H
Mov ES,AX
Mov AH,0FH
Int 10H
Cmp AL,07H
Je PS_2
Mov AX,0B800H
Mov ES,AX
PS_2:
Cld
Movsb
Mov ES:[DI],BL
Inc DI
Loop PS_2
Pop ES
Pop DS
PS_3:
Pop AX
Add $Xcur,AX
Ret
Coutstring Endp
LineFeed Proc Near
Mov $Xcur,1
Inc $Ycur
Cmp $Ycur,26
Jne CrLf_1
Dec $Ycur
CrLf_1:
Mov DX,Offset $CrLf
Mov AH,9
Int 21h
Mov BX,$Xcur
Mov DL,BL
Dec DL
Mov BX,$Ycur
Mov DH,BL
Dec DH
Xor BX,BX
Mov AH,2
Int 10h
Ret
LineFeed Endp
Code Ends
Data Segment
$Xcur DW 1
$Ycur DW 1
$Attr DW 7
$CrLf DB 13,10,'$'
$CrLf2 DB 13,10,0
FgColor DW 7
BgColor DW 0
Err DW 0
DefSeg DW 0
$DataSeg DW 0
$Empty DB 0,0
$Var0 DW 0
$Var1 DW 0
$Var2 DW 0
$Var3 DW 0
Command$ DB 81 DUP(?)
Data Ends
End Gibt übergebene Befehlzeilenargumente aus. Wenn man das also beispielsweise zu einer "argument.com" assembliert und dann im DOS-Promt "argument hallo welt" eingibt schreibt's "hallo welt", wenn man "argument 123test" eingibt schreibt's "123test" - hab ich wie gesagt eine Komponente in einer Client/Server-Konstillation mit ersetzt und habe dann monitoren können, welche Argumente über Parameter beim Call übergeben werden. |