Assembly 有人能解决这个8080汇编代码的“难题”吗?

Assembly 有人能解决这个8080汇编代码的“难题”吗?,assembly,machine-code,intel-8080,Assembly,Machine Code,Intel 8080,我的一个朋友得到了8080汇编代码,作为他试图解决的一个难题的一部分。 代码如下: 3E 02 4F C6 04 47 11 41 01 21 69 00 19 76 他需要B、DE、C和HL的值 有没有人能解决这个问题,或者为我指出正确的方向,告诉我如何运行它 更新 扰流板:解决方案似乎是: C=02,B=06,D=01,E=41,H=01,L=AA 以下是8080指令集的指南: 您的十六进制列表看起来像一个指令流;你应该可以从那里出发。多么令人愉快的老学校 祝你好运。你不需要运行它-你只需

我的一个朋友得到了8080汇编代码,作为他试图解决的一个难题的一部分。 代码如下:

3E 02
4F
C6 04
47
11 41 01
21 69 00
19
76
他需要B、DE、C和HL的值

有没有人能解决这个问题,或者为我指出正确的方向,告诉我如何运行它

更新

扰流板:解决方案似乎是:

C=02,B=06,D=01,E=41,H=01,L=AA


以下是8080指令集的指南: 您的十六进制列表看起来像一个指令流;你应该可以从那里出发。多么令人愉快的老学校


祝你好运。

你不需要运行它-你只需要翻译它。一张包含8080个操作码的表格,10分钟的工作时间,你就可以反汇编代码了。然后,您可以在心里模拟它来得出答案。

根据这一点判断,您最好搜索8080仿真器,并在仿真器上运行它,然后从中获得答案

希望这有帮助, 顺致敬意,
汤姆。

你需要拆开它

也就是说,将十六进制操作码转换为它们的助记符

这里有一个例子

从中可以看出3E是mvia,d8,所以看起来3E 02将值02放入A寄存器

一旦你解码了这些助记符,你就可以查找它们的真正含义并找出程序


手动操作非常简单。

以下是拆卸步骤,以供参考:

 3E 02      mvi     a, 2     ; Move o1 <- immediate data
 4F         mov     c, a     ; Move o1 <- o2
 C6 04      adi     4        ; Add immediate to A
 47         mov     b, a     ; Move o1 <- o2
 11 41 01   lxi     d, 141h  ; Load register pair with immediate data
 21 69 00   lxi     h, 69h   ; Load register pair with immediate data
 19         dad     d        ; Add register pair to HL
 76         hlt              ; Halt
全扰流板

A=6,B=6,C=2,D=1,E=41h,H=1,L=0aah

8080在线反汇编程序。
8080在线指令集参考。

当然,除非他的朋友希望在将来某个时候手动执行此操作,比如在测试中=我个人会对任何一位教授大喊大叫,因为他要求这样的考试。@David:祝你好运,记住操作码哈哈,如果这是意料之中的话,那真是太残忍了……事实上,我曾经熟记了Z80的大部分,也熟记了8080的十六进制操作码——我从来没有坐下来学习过它们,但几个月前,一个汇编程序和调试器把它们牢牢地记在了我的脑海里。当然,现在几乎都不见了。当年我与8051密切合作,意外地记住了许许多多的操作码。当我读大学时,我们不得不在考试中手工反汇编机器代码,但我们有一本68hc11参考手册,其中愉快地列出了操作码、标志、参数等。在这里插入抖动。我只记得21和11分别是LD HL和LD DE指令:
3E 02      ;mvi a, 02h    -- load A with 02h
4F         ;mov c,a       -- move A into C (A remains 02h)
C6 04      ;adi 04h       -- a = a + 04h  (A now contains 06h)
47         ;mov b,a       -- BC pair now contains 0602h
11 41 01   ;lxi d, 0414h  -- DE now contains 0141h
21 69 00   ;lxi h, 0069h  -- HL now contains 0069h
19         ;dad d         -- HL = HL + DE
76         ;hlt           -- halt processing
0000h: 3e02 mvi a, 2h ; A = 2 0002h: 4f mov c, a ; C = 2 0003h: c604 adi 4h ; A = 6 0005h: 47 mov b, a ; B = 6 0006h: 114101 lxi d, 141h ; DE = 0141h 0009h: 216900 lxi h, 069h ; HL = 69h 000ch: 19 dad d ; HL = 69h + 141h = 1aah 000dh: 76 hlt