2012-07-01 3 views
5

私はシンプルなため、32ビットアセンブリコードを書くことで助けを要請しています「プログラムのタトゥー。」ライティングアセンブリコードが

を私はタトゥーを取得したいと思います。それを上に考えた後、私は私ことを決めましたアセンブリコードを使用し、私の娘、Alishaを扱う入れ墨が好きです。私の考えは、アセンブリ言語の法則に反した "非論理的計算"が思い浮かびます。私のような誰か... 1と0に使用されている誰か。

私はいくつかのプッシュとポップEAX、EBX、ECXと同様のx86ベースの32ビットレジスタを使用すると、当然と思っています。

入れ墨にはコメントはありません(かっこはありません)が、開始:表記が含まれます。

start: 
    mov eax, 53656C66h (ASCII for "Self") 
    mov ebx, 57696665h (ASCII for "Wife") 
    add ebx, eax 

    push ebx 
    push 3F81DBh   (Decimal 4162011 = daughter's birth date) 

    pop ecx    (The first pop would give my daughter's birth date) 
    pop ecx    (the second pop would NOT give the answer of eax added to ebx, 
          but would rather give my daughter’s nickname) 
    ??? ecx 

私の考えは???を置き換えることです。 ecxの値が416c69h(ASCIIは「Ali」、私の娘のニックネーム)であることを示しています。私はこのアイデアが素晴らしいと思うし、もし私が(もちろん)それを取得した場合私は入れ墨の写真を投稿します。

私の考えは、最後のポップはコンピュータロジックを無視するということです。本質的に、私たちが知っている "論理"に子供が挑むことは、出産の美しさと並行しようとする私の試みでした。

他のアイデアはありますか?

+0

bxは16ビットレジスタです。値5769666579hは31ビット長です...多分あなたは別の考えを考えてください... – Macmade

+0

良い点Macmade。私は拡張レジスタを使用するように切り替えました。実際には、ACSIIはcharごとに7ビットを使用します。私がASCIIで「Alisha」を保持するために64ビットを使用する必要があることを意味します。それは彼女のニックネームなので、私は "アリ"を使うことができました。 – user1435743

+2

64ビットタトゥーを手に入れたいですか? – hirschhornsalz

答えて

4

少し奇妙なのは、プログラムが何もしないということです。 あなたの名前、妻の名前、生年月日のコードなどを組み合わせた結果、娘の名前になるコードを書くのはどうですか。おそらく一連のXOR命令を使用して意味のある値を得ているでしょうか?

+0

私の考えは、最後のポップは通常のコンピュータロジックを無視するということでした。 5769666579h + 4d65hの答えを返すのではなく、私の娘の名前を返します。しかし、私はあなたの考えが本当に好きです。さて、私は、 "Me"と私の妻のニックネームから "Ali"を得るためにいくつかのXORについて調べる必要があります。私はまた、レジスタにこれらのものをより良く適合させる方法を見つける必要があります...私はこの時点で32ビットに固執したいと思います。 – user1435743

+0

movで始めるか、値を移動するのではなくレジスタをロードする必要がありますか?私は空のレジスタを埋めるための最良の方法がアセンブリにあるのかどうかはわかりません。言い換えれば、「Me」(ASCIIは16進数)と「Wife」(ASCIIは16進数)をインポートすることでプログラムを開始したいと考えています。いったん値を持ってきたら、誕生日/特別日/などのようなものでXORを開始したいと思います。私の娘の名前をXORから得るために。これは難しいでしょう! – user1435743

+0

あなたは 'mov eax、 'Wife''を行うことができます。これはアセンブラによって理解されるでしょう。 – hirschhornsalz