2012-07-01 83 views
5

我請求幫助,寫的32位彙編代碼爲簡單的「程序的紋身。」編寫彙編代碼的紋身

我想獲得一個紋身。思前想後,我決定,我我想要一個使用匯編代碼並與我的女兒Alisha打交道的紋身,我的想法提出了一個「不合邏輯的計算」,這個計算反駁了彙編語言的規律,我想表達對如何不合邏輯地擁有一個孩子似乎像我......別人誰是用於1和0。

我想使用基於x86的32位寄存器,如:EAX,EBX,ECX和當然一些push和pop的。

紋身不會有評論(括號裏沒有),但會包括開始:符號。

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每個字符使用7位,對吧?這意味着我需要使用64位來保存ASCII中的「Alisha」。我可以使用「阿里」,因爲那是她的暱稱。 – user1435743

+2

你不想要64位紋身嗎? – hirschhornsalz

回答

4

有點奇怪的是,程序什麼都不做,真的。 爲什麼不把代碼寫在你的女兒的名字上,結合你的名字,你妻子的名字和她的出生日期的一些編碼?也許通過一系列帶有一些有意義的值的指令XOR

+0

我的想法是,最後的流行音樂會違背正常的計算機邏輯。它將返回我女兒的名字,而不是返回5769666579h + 4d65h的答案。不過,我真的很喜歡你的想法。現在,我只需要找出如何去執行一些異或操作來從「我」和我妻子的暱稱/名稱中得出「阿里」的十六進制。我還需要找出如何更好地將這些東西裝入寄存器中......我寧願在這一點上堅持使用32位。 – user1435743

+0

我想從movs開始,還是應該加載寄存器而不是移入某個值?我不確定裝配空白寄存器的最佳方式是什麼。換句話說,我想通過引入「我」(ASCII爲十六進制)和「妻子」(ASCII爲十六進制)來開始程序。一旦我提出了這些價值觀,我想開始對它們進行XOR處理,例如出生日期/特殊日期/等等。爲了從異或中得到我女兒的名字。這將是棘手的! – user1435743

+0

你可以做'mov eax,'Wife'',這可以被彙編程序理解。 – hirschhornsalz