Gde je ovde greska? [.asm]
Prikazujem rezultate 1 do 2 od 2

Tema: Gde je ovde greska? [.asm]

  1. #1
    Zainteresovan član
    Učlanjen
    30.12.2008.
    Pol
    muški
    Poruke
    376
    Reputaciona moć
    0

    Podrazumevano Gde je ovde greska? [.asm]



    Kod:
    ;*********************************************************
    ;                                                       ;*
    ;    Shifts Ch characters to the right for Cl places.   ;*
    ;                                                       ;*
    ;  _______________________________________________      ;*
    ;                                                       ;*
    ;    RECEIVES               ____ __  __    __        __ ;*
    ;                                                       ;*
    ;    Ch  - Number of characters.                        ;*
    ;    Cl  - Number of places.                            ;*
    ;                                                       ;*
    ;                                                       ;*
    ;     RETURNS               __        __    __  __ ____ ;*
    ;                                                       ;*
    ;    None.                                              ;*
    ;                                                       ;*
    ;                                                       ;*
    ; ____ __  __    __        __               MODIFIES    ;*
    ;                                                       ;*
    ;        None.                                          ;*
    ;                                                       ;*
    ;                                                       ;*
    ;                                       STATE:   Ok.    ;*
    ;*********************************************************
    ShiftCharactersRight    PROC  USES Eax, Ebx, Ecx, Edx
    
       push  SI ;__
       push  gs ;__ __
    
    	movzx Dx, Cl
    	mov   Bx, es
    	sub   Bx, Dx
    
       push  Bx ;__ __ __
       pop   gs ;__ __ __
    
    	movzx Ax,  Ch
    	mov   Bl,  6
    	div   Bl
    	mov   ECx, 0
    	mov   Cl,  Ah
    	bswap ECx
    	mov   Cl,  Al
    
    	add   DI, Cx
    	add   DI, Cx
    	sub   DI, 4
    
    	ShiftCharacters:
    	      mov   SI, Cx
    
    	      mov   EAx, DWord PTR es:[DI]
    	      sub   DI,  4
    	      mov   EBx, DWord PTR es:[DI]
    	      sub   DI,  4
    	      mov   ECx, DWord PTR es:[DI]
    	      sub   DI,  4
    	      mov   EDx, DWord PTR es:[DI]
    
    	      mov   DWord PTR gs:[DI], EDx
    	      add                 DI , 4
    	      mov   DWord PTR gs:[DI], ECx
    	      add                 DI , 4
    	      mov   DWord PTR gs:[DI], EBx
    	      add                 DI , 4
    	      mov   DWord PTR gs:[DI], EAx
    
    	      sub   DI, 16
    
    	      mov   Cx, SI
    	LOOP  ShiftCharacters
    
    	add   DI, 4
    	bswap ECx
    
    	ShiftRemaindedCharacters:
    	      sub                 DI, 2
    	      mov                 Ax, Word PTR es:[DI]
    	      mov   Word PTR gs:[DI], Ax
    	LOOP  ShiftRemaindedCharacters
    
       pop   gs ;__ __
       pop   SI ;__
    
    Ret
    ShiftCharactersRight    ENDP



  2. #2
    Zainteresovan član
    Učlanjen
    30.12.2008.
    Pol
    muški
    Poruke
    376
    Reputaciona moć
    0

    Podrazumevano Re: Gde je ovde greska? [.asm]

    Ispravka, posle USES ne idu zarezi, i neke logicke greske, ali opet ne radi kako treba (greska neka logicka je u pitanju):

    Kod:
    ;*********************************************************
    ;                                                       ;*
    ;    Shifts Ch characters to the right for Cl places.   ;*
    ;                                                       ;*
    ;  _______________________________________________      ;*
    ;                                                       ;*
    ;    RECEIVES               ____ __  __    __        __ ;*
    ;                                                       ;*
    ;    Ch  - Number of characters.                        ;*
    ;    Cl  - Number of places.                            ;*
    ;                                                       ;*
    ;                                                       ;*
    ;     RETURNS               __        __    __  __ ____ ;*
    ;                                                       ;*
    ;    None.                                              ;*
    ;                                                       ;*
    ;                                                       ;*
    ; ____ __  __    __        __               MODIFIES    ;*
    ;                                                       ;*
    ;        None.                                          ;*
    ;                                                       ;*
    ;                                                       ;*
    ;                                       STATE:   Ok.    ;*
    ;*********************************************************
    
    
    
    NumOfChars EQU  <Ch>
    NumOfPlaces EQU <Cl>
    
    ShiftCharactersRight    PROC  USES Eax Ebx Ecx Edx
    
       push  SI ;__
       push  gs ;__ __
    
    	movzx Dx, NumOfPlaces
    	mov   Bx, BIOS_Video_Text_segment
    	add   Bx, Dx
    	add   Bx, Dx
    
       push  Bx ;__ __ __
       pop   gs ;__ __ __
    
    	movzx Ax,  NumOfChars
    	mov   Bl,  8
    	div   Bl
    	mov   ECx, 0
    	mov   NumOfPlaces,  Ah
    	bswap ECx
    	mov   NumOfPlaces,  Al
    
    	sub   DI, 4
    	mov   Bl, NumOfPlaces
    	or    Bl, 00000000b
    	JZ    Continue
    
    	ShiftCharacters:
    	      mov   SI, Cx
    
    	      mov   EAx, DWord PTR es:[DI] ;123412341234123412 |Read: 34
    	      sub   DI,  4                 ;1234123412341234 | 1234
    	      mov   EBx, DWord PTR es:[DI] ;1234123412341234 | Read: 12 |34
    	      sub   DI,  4                 ;12341234123412 | 341234
    	      mov   ECx, DWord PTR es:[DI] ;12341234123412 |Read: 34 |1234
    	      sub   DI,  4                 ;123412341234 | 12341234
    	      mov   EDx, DWord PTR es:[DI] ;123412341234 |Read: 12 |341234
    
    	      mov   DWord PTR gs:[DI], EDx
    	      add                 DI , 4
    	      mov   DWord PTR gs:[DI], ECx
    	      add                 DI , 4
    	      mov   DWord PTR gs:[DI], EBx
    	      add                 DI , 4
    	      mov   DWord PTR gs:[DI], EAx
    
    	      sub   DI, 16
    
    	      mov   Cx, SI
    	LOOP  ShiftCharacters
    
    	add   DI, 4
    
    	Continue:
    	      bswap ECx
    
    	      ShiftRemaindedCharacters:
    	            sub                 DI, 2
    	            mov                 Ax, Word PTR es:[DI]
    	            mov   Word PTR gs:[DI], Ax
    	      LOOP  ShiftRemaindedCharacters
    
       pop   gs ;__ __
       pop   SI ;__
    
    Ret
    ShiftCharactersRight    ENDP

Slične teme

  1. Odlican sajt!Klikni ovde!OVDE!OVDE!
    Autor Master Of The Air u forumu Muškarci
    Odgovora: 0
    Poslednja poruka: 13.09.2007., 18:39
  2. Odlican sajt!Klikni ovde!OVDE!
    Autor Master Of The Air u forumu Politika
    Odgovora: 0
    Poslednja poruka: 13.09.2007., 18:39
  3. greska
    Autor HBH u forumu Prirodne nauke
    Odgovora: 1
    Poslednja poruka: 23.10.2004., 17:10

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •