【发布时间】:2012-07-02 09:29:00
【问题描述】:
我请求帮助我编写一个简单的“程序纹身”的 32 位汇编代码。
我想纹身。仔细考虑之后,我决定我想要一个使用汇编代码并与我的女儿 Alisha 打交道的纹身。我的想法是提出一种“不合逻辑的计算”,它违反了汇编语言的规律。我想向像我这样习惯了 1 和 0 的人来说,生孩子是多么不合逻辑。
我正在考虑使用基于 x86 的 32 位寄存器,例如 EAX、EBX 和 ECX,当然还有一些推送和弹出。
纹身不会有 cmets(括号中没有),但会包括 start: 符号。
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 表示“阿里”,我女儿的昵称)。我认为这个想法很棒,如果我得到它,我会发布纹身的图片(当然)。
我的想法是最后一次弹出会违反计算机逻辑。从本质上讲,生孩子违背了我们所知道的“逻辑”,所以这是我试图平行出生之美的尝试。
还有其他想法吗?
【问题讨论】:
-
bx 是一个 16 位寄存器。值 5769666579h 是 31 位长......也许你应该考虑另一个想法......
-
好点麦克马德。我刚刚切换到使用扩展寄存器。实际上,ACSII 每个字符使用 7 位,对吧?这意味着我需要使用 64 位来保存 ASCII 中的“Alisha”。我可以使用“阿里”,因为那是她的昵称。
-
你不想得到一个 64 位的纹身吗?
-
wifey 不适合 32 位,顺便说一句
-
“读取”值的指令是
mov。您需要指定要放置已读取值的位置。如果要比较值,需要cmp。