[ASM] Push en Pop probleem

Pagina: 1
Acties:

  • Sheedafi
  • Registratie: Juni 2002
  • Laatst online: 12-12-2024

Sheedafi

..::[::Java::]::..

Topicstarter
Hallo,

op school zijn we bezig met assembler, en we zijn nu bezig met push en pop

de push en pop werkt perfect maar alleen is het probleem dat als je een
reeks tekens achtereen op de stack plaats en je wilt deze reeks tekens terug
van de stack halen, dat dat de reeks tekens in omgekeerde volgorde
eruit komen [wat volledig logisch is ].

Mijn vraag nu is, is hiervoor iets te vinden of is het het beste om een
andere manier te gebruiken.

Het sukje code dat ik nu heb

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
org 100h


mov cx, 06h     ; loop van 6


READCHAR:
    mov ah, 01h ; functie om 1 char in te lezen van keyboard
    int 21h     ; functie aanroepen
    mov ah, 00h ; zorgen dat ah geen waarde meer bevat
    push ax     ; ax op de stack plaatsen

    loop READCHAR   ; loopen


mov cx, 06h     ; 6 chars afdrukken


call PRINTENTER     ; druk een enter


PRINTCHAR:
    pop dx      ; laatste uit pop halen en in dx steken
    call ADDTOBUFFER;
    loop PRINTCHAR


call BEEP       ; laat een beep horen

mov ah, 4ch     ; afdruk functie
int 21h         ; afdruk functie aanroepen


ADDTOBUFFER:
    mov ah, 02h ; toevoegen in buffer (in dl staat nu juiste val)
    int 21h     ; functie aanroepen
    ret     ; terug naar main()

PRINTENTER:
    mov dh, dl  ; dl tijdelijk in dh

    mov dl, 0Ah ; enter (newline)
    call ADDTOBUFFER
    mov dl, 0Dh ; enter (linefeed)
    call ADDTOBUFFER

    mov dl, dh  ; "backup" terug in dl plaatsen
    ret     ; terug naar main()

BEEP:
    mov dh, dl  ; dl tijdelijk in dh

    mov dl, 07h ; beep
    call ADDTOBUFFER

    mov dl, dh  ; "backup" terug in dl plaatsen
    ret     ; terug naar main()


In ieder geval al bedankt :) _/-\o_ _/-\o_

[ Voor 4% gewijzigd door Sheedafi op 28-02-2003 13:59 ]

If it jams force it, if it breaks it needed fixing anyway!!


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

offtopic:
welke ontwikkelomgeving gebruik je voor assembler? of edit je het met notepad :?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • whoami
  • Registratie: December 2000
  • Nu online
[nohtml]
Sheedafi schreef op 28 februari 2003 @ 13:58:
Hallo,

op school zijn we bezig met assembler, en we zijn nu bezig met push en pop

de push en pop werkt perfect maar alleen is het probleem dat als je een
reeks tekens achtereen op de stack plaats en je wilt deze reeks tekens terug
van de stack halen, dat dat de reeks tekens in omgekeerde volgorde
eruit komen [wat volledig logisch is ].

Mijn vraag nu is, is hiervoor iets te vinden of is het het beste om een
andere manier te gebruiken.
Wat wil je nu eigenlijk? De data die je er het eerst hebt ingestoken er ook als eerste weer uithalen?
Dan moet je geen stack gaan gebruiken, want First In Last Out is de karakteristiek voor een stack.

https://fgheysels.github.io/


  • Tommel
  • Registratie: November 2000
  • Niet online
Spider.007 schreef op 28 februari 2003 @ 14:01:
offtopic:
welke ontwikkelomgeving gebruik je voor assembler? of edit je het met notepad :?
Voor asm is er geen echte ontwikkelomgeving, UltraEdit ja maar of je dat een ontwikkelomgeving kunt noemen :+

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Tommel schreef op 28 February 2003 @ 14:02:
[...]


Voor asm is er geen echte ontwikkelomgeving, UltraEdit ja maar of je dat een ontwikkelomgeving kunt noemen :+
Ik zat zelf te denken aan een all in one editor/compiler/debugger (met evt. syntax highlighting / command completion); ik wil zelf namelijk ook nog eens verdergaan met assembler.

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • Sheedafi
  • Registratie: Juni 2002
  • Laatst online: 12-12-2024

Sheedafi

..::[::Java::]::..

Topicstarter
Ik werk dus ment notepad als editor!!
De compler is nasm

Ik wil inderdaad de data die er eerst ingaat er ook als eerste terug uithalen.

Ik had ook gedacht van bv met geheugen plaatsen te werken en dan gewoon via die geheugen adressen de data er terug uithalen, alleen hebk ik geen flauw idee hoe dat zou moeten gebeuren.

Met variabelen ofzo
code:
1
data dw 10h


en dan elke keer die 1 positie opschuiven??

If it jams force it, if it breaks it needed fixing anyway!!


  • Sheedafi
  • Registratie: Juni 2002
  • Laatst online: 12-12-2024

Sheedafi

..::[::Java::]::..

Topicstarter
Spider.007 schreef op 28 February 2003 @ 14:06:
[...]


Ik zat zelf te denken aan een all in one editor/compiler/debugger (met evt. syntax highlighting / command completion); ik wil zelf namelijk ook nog eens verdergaan met assembler.
Als je echt wil via vb ofzo editor maken
shell gebruiken om nasm te starten of debug en de output van dos venster opvangen en weergeven

If it jams force it, if it breaks it needed fixing anyway!!


  • Sheedafi
  • Registratie: Juni 2002
  • Laatst online: 12-12-2024

Sheedafi

..::[::Java::]::..

Topicstarter
People tnx voor de info

maar ik heb het gevonden via lea instructie

in elk geval bedankt

If it jams force it, if it breaks it needed fixing anyway!!


Verwijderd

Ik weet niet voor welke processor jij assembleert, dus.....
Je zou de grootte van de stack kunnen bepalen, en dan dat van de stack pointer aftrekken en omgekeerd de waarden ervan af halen.

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Verwijderd schreef op 28 februari 2003 @ 19:36:
Ik weet niet voor welke processor jij assembleert, dus.....
Je zou de grootte van de stack kunnen bepalen, en dan dat van de stack pointer aftrekken en omgekeerd de waarden ervan af halen.
Sheedafi schreef op 28 February 2003 @ 14:26:
People tnx voor de info

maar ik heb het gevonden via lea instructie

in elk geval bedankt
;)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • madwizard
  • Registratie: Juli 2002
  • Laatst online: 26-10-2024

madwizard

Missionary to the word of ska

Spider.007 schreef op 28 februari 2003 @ 14:06:Ik zat zelf te denken aan een all in one editor/compiler/debugger (met evt. syntax highlighting / command completion); ik wil zelf namelijk ook nog eens verdergaan met assembler.
Voor welk soort assembler? 16-bits dos, 32-bits in windows? In ieder geval is er voor windows apps radasm, een goede IDE (is zelf ook geschreven in asm) die overweg kan met masm/fasm/tasm/nasm. Deze IDE doelt wel op 32-bits windows binaries (exe/dll/lib/etc) dus werkt niet handig voor DOS apps. AsmEdit is ook een goede (eveneens win32asm). Debugger zit er niet in maar als je visual C hebt kan je die als debugger gebruiken (in ieder geval kan je met masm je source zo assemblen dat je kan debuggen op source niveau).
Voor DOS apps zou ik het niet weten, maar met ultraedit + goede syntax highlighting kom je een heel eind.

www.madwizard.org


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

madwizard schreef op 28 February 2003 @ 21:14:
[...]

Voor welk soort assembler? 16-bits dos, 32-bits in windows? In ieder geval is er voor windows apps radasm, een goede IDE (is zelf ook geschreven in asm) die overweg kan met masm/fasm/tasm/nasm. Deze IDE doelt wel op 32-bits windows binaries (exe/dll/lib/etc) dus werkt niet handig voor DOS apps. AsmEdit is ook een goede (eveneens win32asm). Debugger zit er niet in maar als je visual C hebt kan je die als debugger gebruiken (in ieder geval kan je met masm je source zo assemblen dat je kan debuggen op source niveau).
Voor DOS apps zou ik het niet weten, maar met ultraedit + goede syntax highlighting kom je een heel eind.
Ik ga radasm eens bekijken; bedankt voor de zeer uitgebreide post _/-\o_

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate

Pagina: 1