ASM Assembler Hilfe varialble und tasten druck problem/frage

12/13/2014 17:10 JPB#1
Hallo leute,
beschäftige mich neuerdings mit assembler und habe da ein kleines problem,
kurz vor ab, ich arbeite mit windows 2000 unter virtalbox mit WinAsm.
Aber nun zu meiner frage.
Ich habe ein kleines cookie programm geschrieben, wenn ich eins drücke, soll da stehen "you got 1 cookie" bis hin zu vier, "you got 4 cookies". Aber wenn ich eins drücke wird die nachricht für zwei angezeigt, bei 2 für drei und bei drei für vier. F1 als exit taste funktioniert, doch ist eigentlich die taste 1 als 1 cookie gedacht und soweiter. Vlt. hat einer von euch ja eine Idee.
WinAsm findet in meinem code keinen Fehler.
Hier der code:
12/13/2014 20:19 Mostey#2
Die Logik stimmt, Keycodes sind aber scheinbar falsch.
Das ist deine Funktion: [Only registered and activated users can see links. Click Here To Register...] (?)

[Only registered and activated users can see links. Click Here To Register...]Scancodes hier bezeichnen die Nummerntasten nirgendwo als 1d, 2d, 3d oder 4d in der Reihenfolge. Du kannst zwar die Nachstellen abschneiden aber wie du siehst ist die Taste 1 hier 0231 (daher springt er auch zu Label gg weil CMP ah, 2d stimmt und CMP ah, 1d nicht):

Quote:
Key Normal Shifted w/Ctrl w/Alt

1 0231 0221 7800
2 0332 0340 0300 7900
3 0433 0423 7A00
4 0534 0524 7B00
12/14/2014 00:29 JPB#3
Hey Mostey, dannke danke danke, danke schön *-* :D
Klar, dadurch das ich für F1 ah wegen der scancodes benutzen muss, kann ich die zahlen nicht einfach so hin schreiben, sondern muss auch deren scancodes verwenden #EsGibtKeinenFacepalmSmiley.
Wenn ich die werte aus deiner tabelle angebe, startet das programm, aber er erkennt die zahl nicht, wenn ich ein h hinter die zahl setze bekomme ich:
Code:
Make finished. 2 error(s) occured.
Wenn ich nun aber die Werte aus [Only registered and activated users can see links. Click Here To Register...] (ich benutze die werte aus der unteren tabelle die Werte auf der Tastertur funktionieren bei mir nicht) bekomme ich keinen error, sprich wenn ich die zahlen "kürze" und ein h dahinter setze, hast du eine idee, woher das kommt?

Danke für deine Hilfe :)
MfG JPB
12/14/2014 17:56 Mostey#4
Quote:
All Scan Codes are given as Hexadecimal numbers.
Heißt, alle Codes brauchen hinter dem Code ein h. 3B00 -> 3B00h oder auch nur 3Bh. Bei den Nummerntasten wäre das für die Taste 1: 02 -> 02h.

d steht für Dezimal, nicht verwechseln. ;)

Btw. gibt es tatsächlich einen Facepalm Smiley: :facepalm: