|
You last visited: Today at 20:58
Advertisement
ASM Assembler Hilfe varialble und tasten druck problem/frage
Discussion on ASM Assembler Hilfe varialble und tasten druck problem/frage within the General Coding forum part of the Coders Den category.
12/13/2014, 17:10
|
#1
|
elite*gold: 400
Join Date: Nov 2010
Posts: 228
Received Thanks: 36
|
ASM Assembler Hilfe varialble und tasten druck problem/frage
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:
Variablen(zur Text ausgabe):
msg: begrüßung
aa:1cookie
bb:2cookies
cc:3cookies
ad:4cookies
Punkte(zum jumpen):
ff:1cookie
gg:2cookies
hh:3cookies
jj:4cookies
Und "3bh" ist der scancode der F1 taste
Code:
.model tiny
.data
msg db "How much cookies do you want? (1-4)(or press 'F1' to exit)",13,10,"$"
aa db "You got 1 cookie",13,10,"$"
bb db "You got 2 cookies",13,10,"$"
cc db "You got 3 cookies",13,10,"$"
ad db "You got 4 cookies",13,10,"$"
.code
.startup
mov dx,offset msg ; Get the address of our message in the DX
mov ah,9 ; Function 09h in AH means "WRITE STRING TO STANDARD OUTPUT"
int 21h ; Call the DOS interrupt (DOS function call)
key:
mov ah,0 ; Call bios function "GET KEYSTROKE"
int 16h
CMP ah,1d
JE ff
CMP ah,2d
JE gg
CMP ah,3d
JE hh
CMP ah,4d
JE jj
CMP ah,3bh
JE ex
JNE key
ff:
mov dx,offset aa
mov ah,9
int 21h
mov ah,0
int 16h
CMP ah,3bh
JE ex
JNE key
gg:
mov dx,offset bb
mov ah,9
int 21h
int 16h
CMP ah,3bh
JE ex
JNE key
hh:
mov dx,offset cc
mov ah,9
int 21h
int 16h
CMP ah,3bh
JE ex
JNE key
jj:
mov dx,offset ad
mov ah,9
int 21h
int 16h
CMP ah,3bh
JE ex
JNE key
ex:
.exit
end
|
|
|
12/13/2014, 20:19
|
#2
|
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
|
Die Logik stimmt, Keycodes sind aber scheinbar falsch.
Das ist deine Funktion: (?)
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
|
#3
|
elite*gold: 400
Join Date: Nov 2010
Posts: 228
Received Thanks: 36
|
Hey Mostey, dannke danke danke, danke schön *-*
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 (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
|
#4
|
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
|
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:
|
|
|
|
Similar Threads
|
[C#] Tasten druck simulieren
07/31/2014 - .NET Languages - 4 Replies
Da ein Spielfenster nicht auf die postmessage-funktion sowie ähnliches reagiert hat, habe ich nun versucht das ganze auf einer der hardware näheren Ebene zu versuchen. Mit der folgenden dll: Windows Input Simulator (C# SendInput Wrapper - Simulate Keyboard and Mouse) - Home
Aber auch damit hat es nicht funktioniert.
Somit zu meiner Frage, wie kann ich einen Tastendruck auf einem der Hardware so nahe wie möglich kommenden Level simulieren?
|
tasten druck simulator
03/13/2010 - Main - 12 Replies
huhu also ich weis nicht ob ich das am richtigen ort frage aber suche bereits seit 6 stunden nach einem simulator der tastendrücke simuliert ich hab hier in diesem forum nichts gefunden und auch in anderen nur programme die nicht funktionieren wenn einer vllt noch ein programm kennt möglichst auf deutsch mein englisch is nicht so toll der könnte ja vllt den download link hier posten
were sehr dankbar
|
T-Shirt - Druck Problem
08/29/2007 - General Art - 0 Replies
Hiho,
also ich hab ein ähnliches Problem wie tox1c nur das ich schon ein Bild habe was aber glaube ich zu klein für ein Tshirt ist. Wisst ihr oder kann mir das jmd auf Tshirt Format es soll ein Streifen von Schulter zu Schulter sein:
http://img187.imageshack.us/img187/5951/headeroz8 .jpg
Grüße - Frozen
|
All times are GMT +2. The time now is 20:58.
|
|