zahlen aneinander reihen
-
Also mein problem ist folgendes
nach einer eingabe habe ich 4 Bytes mit jeweils einer zahl
Das ganze sieht so im speicher aus(mit der zahl 9999):Binär:
|0000 1001|0000 1001|0000 1001|0000 1001|
Hexadezimal:
|09|09|09|09|
Dezimal:
|009|009|009|009|
Wie mus ich jetzt vorgehen wen ich die jetzt zusamen schieben will zur 9999
also so das im speicher das hier steht:Binär:
|0000 0000|0000 0000|0010 0111|0000 1111|
Hexadezimal:
|00|00|27|0F|
Dezimal:
|000|000|39|255|
edit: ich benutze MASM zum Assemblieren
-
z.B.:
.data bcd db 9,9,9,9 .code xor edx,edx ; edx = num = 0 xor ecx,ecx ; ecx = i = 0 .while ecx < LENGTHOF bcd ; imul edx,edx,10 lea eax,[edx*8+edx] ; num = num*10 + bcd[i] lea edx,[edx+eax] ; movzx eax,bcd[ecx] ; lea edx,[eax+edx] ; inc ecx ; i = i + 1 .endw ; edx = num
-
Man kann zum Konvertieren auch machen
9 * 0ah^0 + 9 * 0ah^1 + 9 *0ah^2 + 9*0ah^3 usw.Für das Rechnen mit Bcd Zahlen braucht man nicht groß konvertieren, dafür sinds ja bcd Zahlen.