Jump to content

"Hello World!" dans tous les langages


Recommended Posts

  • Replies 208
  • Created
  • Last Reply

Top Posters In This Topic

unsigned char hello[]=
"\x55\x89\xe5\x83\xec\x24\x53\xe8\x00\x00\x00\x00\x5b\x83\xc3\xf4\x8b\x83\x67"
"\x00\x00\x00\x89\x45\xf0\x8b\x83\x6b\x00\x00\x00\x89\x45\xf4\x8b\x83\x6f\x00"
"\x00\x00\x89\x45\xf8\x0f\xb7\x83\x73\x00\x00\x00\x66\x89\x45\xfc\x8d\x4d\xf0"
"\xba\x0e\x00\x00\x00\xb8\x04\x00\x00\x00\xc7\x45\xec\x01\x00\x00\x00\x53\x8b"
"\x59\xfc\xcd\x80\x5b\xb8\x01\x00\x00\x00\xc7\x45\xec\x00\x00\x00\x00\x53\x8b"
"\x59\xfc\xcd\x80\x5b\x5b\xc9\xc3\x48\x65\x6c\x6c\x6f\x20\x77\x6f\x72\x6c\x64"
"\x21\x0a\x00";
int main(){((void(*)())hello)();}

Link to post
Share on other sites

En FORTRAN

        CHARACTER*12 hello

        hello='Hello World!'

        write(*,10)hello

10    format(' ',a12)

        stop

        end

Si vous voulez essayer faites bien attentiton d'être en colonne 7 :byebye:

      write(*,10)

10    format('Hello Wolrd!')

      stop

      end

C'est plus simple mais moins beau, apparement avec le compilateur Force208 le caractère de contrôle est pas obligatoire...

Edited by Pedz
Link to post
Share on other sites
  • 4 weeks later...
  • 2 weeks later...
charles.w > j'ai aussi des doutes pour ton code pour le 68000, les variables sont mises en pile via son addresse dans le registre a7 alors que celle-ci n'est pas linkée à a7...

:eeek2: Sur un 68000 a7 et SP sont exactement la même chose.

Edited by wanou
Link to post
Share on other sites

RPL (hp48g):

<<
#01FA7h SYSEVAL
"Hello World!" #1245Bh SYSEVAL 
>>

Sur un AVR AT90S2313 (on sort sur le port série à 9600bauds).

.include "..\appnotes\2313def.inc"
.def	temp  	= r16
.equ	Frequence_quartz = 11059;définit la fréquence du quartz en KHz
.equ	baud9600  = Frequence_quartz*1000/(16*9600)-1

.CSEG
.ORG $0000
rjmp	Reset; Reset handle

.ORG $000B
Hello:
.db "Hello World!",0,0

Reset:
ldi temp,RAMEND;initialisation de la pile
out SPL,temp

ldi temp,baud9600;init de l'UART
rcall Init_UART

ldi r31,high(Hello);chargement du pointeur Z avec la chaine
ldi r30,low(Hello)
rcall Print_string

main_loop:  ;boucle infinie!!
rjmp main_loop

Print_string:
ld temp,Z+
tst temp
breq End_print_string
rcall To_UART
rjmp Print_string
End_print_string:
ret

Init_UART:
out UBRR,temp
ldi temp,$18;portsérie en émmission et réception 8bits+1stop sans it
out UCR,temp
ret	

To_UART:
sbis USR,UDRE
rjmp To_UART; on boucle tant que l'uart n'est pas prêt à émmetre
out UDR,temp; rien sous it!
ret
;**** End of File ****

et voila, c'est simple en fait :eeek2:

Edited by wanou
Link to post
Share on other sites
:byebye: Sur un 68000 a7 et SP sont exactement la même chose.

il me semblait que le lien entre le SP et le registre A7 n'était pas physique. Par convention SP est référencé par A7, mais si on ne fait rien pour, il ne l'est pas...

Enfin, c'est ce que l'on faisait quand j'ai fait un peu de 68000 il y a 2 ans... :transpi:

Link to post
Share on other sites

On t'as mal renseigné alors :mdr2:

Le lien est physique, A7 est SP (USP ou SSP en fonction du mode pour être exact).

Je suppose que le lien à faire entre A7 et SP était dans le compilateur que tu utilisait.

http://www.wordiq.com/definition/Motorola_68000

Et c'était déjà le cas il y à 10ans quand je me suis fait une implémentation de kermit en assembleur sur mon atari pour sauver les fichiers de ma HP48 (que je programmais en hexadécimal avec calculs de saut à la main). :mdr2:

Edited by wanou
Link to post
Share on other sites

Je suppose que le lien à faire entre A7 et SP était dans le compilateur que tu utilisait.

c'est plsu que fort possible. Je ne me suis jamais vraiment penché sur la question (faut dire que l'interet actuel de faire de l'assembleur 68k...). Je me souvenait juste qu'on se faisait chi :roll: à linker a7 et SP. tu as sans doute raison :mdr:

Link to post
Share on other sites
Sur un AVR AT90S2313 (on sort sur le port série à 9600bauds).

.include "..\appnotes\2313def.inc"

... skip ...

Print_string:
ld temp,Z+
tst temp
breq End_print_string
rcall To_UART
rjmp Print_string
End_print_string:
ret

Init_UART:
out UBRR,temp
ldi temp,$18;portsérie en émmission et réception 8bits+1stop sans it
out UCR,temp
ret	

To_UART:
sbis USR,UDRE
rjmp To_UART; on boucle tant que l'uart n'est pas prêt à émmetre
out UDR,temp; rien sous it!
ret
;**** End of File ****

et voila, c'est simple en fait  :top:

ben c'est trop simple pour fonctionner, en fait :yes:

Link to post
Share on other sites

En :oops: DOS Shell (j'ai honte)

@ECHO Hello World !

En :incline: OCCAM (pour ceux qui sont équipés lampe torche et pelle)

PROGRAM HW
#USE ioconv
SEQ
 write.full.string(screen,"Hello World !")

En :pleure: RPL HP28S, SYSEVAL-free (Nostalgie, nostalgie...)

<< "Hello World !" 1 DISP >>

En Delphi


:mdr:

En :incline::incline::incline: 68K sur :yes::yes::yes: ST avec :francais::chinois::-D DEVPAC

  section text
      pea.l  msg
      move.w #9,-(a7)
      trap   #1       ;Cconws
      addq.l #6,a7
      clr.w  -(a7)
      trap   #1       ;Pterm0
   section data
msg: dc.b "Hello World !",10,13,0

En LOGO, version texte (si il y en a un qui veut nous faire la version graphique...)

PRINT [Hello World !]

En pseudocode :francais:

afficher 'Hello World !'

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...