[Gelöst] ASM Division durch 2 mit SAR (x64)

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

[Gelöst] ASM Division durch 2 mit SAR (x64)

Beitrag von Mijikai »

Ist es möglich RAX mit

Code: Alles auswählen

SAR EAX,1h
durch 2 zu teilen oder geht das nur mit 32bit Registern?
Zuletzt geändert von Mijikai am 17.01.2018 01:00, insgesamt 1-mal geändert.
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: ASM Division durch 2 mit SAR (x64)

Beitrag von mk-soft »

Nicht 'eax', sondern 'rax' für 64bit Register

Code: Alles auswählen

Procedure foo()
  !mov rax, -100
  !sar rax, 1
  ProcedureReturn
EndProcedure
Vielleicht geschlafen :roll: :mrgreen:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: ASM Division durch 2 mit SAR (x64)

Beitrag von Mijikai »

mk-soft hat geschrieben:Nicht 'eax', sondern 'rax' für 64bit Register

Code: Alles auswählen

Procedure foo()
  !mov rax, -100
  !sar rax, 1
  ProcedureReturn
EndProcedure
Vielleicht geschlafen :roll: :mrgreen:
Sieh so aus :praise:

Zu viel Assembler :freak: lern ja noch :oops:

Immerhin bin ich jetzt fast fertig mit den Stringfunktionen (200~ Zeilen Code) :)

Code: Alles auswählen

Import "SOP64.OBJ"
  SOP_FindString.i(Buffer.s,Signature.s,NoCase.i);RET: StrPos
  SOP_FindStringEx.i(Buffer.s,Signature.s,NoCase.i);RET: StrPosAddr 
  SOP_FindStringReverse.i(Buffer.s,Signature.s,NoCase.i);RET: StrPos
  SOP_FindStringReverseEx.i(Buffer.s,Signature.s,NoCase.i);RET: StrPosAddr 
  SOP_CopyMemory(Source.i,Destination.i,Length.i);RET: Null
  SOP_ExtractString.i(Buffer.s,SigStart.s,SigEnd.s,Offset.i,NoCase.i);RET: StrPtr
  SOP_StringOffset(Buffer.i);RET: Offset of SigEnd - StrPtr
  SOP_FreeString(Buffer.i);RET: Null - frees StrPtr
 ;ToDo: SOP_ExtractStringReverse()
EndImport
Antworten