【发布时间】:2017-05-05 13:41:20
【问题描述】:
首先,我是汇编语言的初学者,现在我正在学习微处理器。我们编写了一些小程序。但是,我正在开发名为“基本加密方案(BES)”的程序,其想法是切换用户输入的字符的低位。然后,从 1-9 获取输入并将其添加到切换字符。最后,打印出来。例如,如果输入字符为 A,输入键值为 6。程序应取 A 的 ASCIl 值 01000001,切换位 [o:o],产生 01000000,然后添加输入值键 6。最终输出字符为 01000110。这是 ASCII 值 F
好消息是我编写了几乎所有东西: => 我编写了一条包含多个字符的消息并将它们保存在 [si] => 我编写了一条消息,该消息接受输入键值并将其转换为注册并将其保存在 bl => 我编写了一个 cod,它将从 [si] 和 [di] 获取字符串并将它们打印在屏幕上。
正是我需要一个通过从 [si] 获取字符串和从 (bl) 获取密钥来应用基本加密方案方法的 cod。
谢谢
【问题讨论】:
-
如果你做了所有的编程,你应该有一些代码给我们看。可能是minimal reproducible example,带有一两条评论,显示您遇到的问题。
-
不需要从 z 旋转回 a ,我要有效范围
-
就这样吧。如果卡住,请查看 8086 指令集列表(原始 8086 很短,我认为 wikipedia 每个 CPU 代都有它)并通过它,听起来可用,然后检查详细信息。对于您正在执行的代码,您可能只需要(没有 I/O 部件,这些部件在汇编中是特定于平台的,可以从示例中复制):
mov, add/sub, j<condition>, cmp, xor, jmp...call/ret可能很方便避免代码重复并给出它一些结构,push/pop是临时保存值的简单方法。但是继续探索所有这些,它会帮助你感受它。
标签: assembly x86 x86-16 emu8086