现在让我们看一下Intel 8085微处理器的程序。该程序将计算两个16位数字的乘法。
编写8085汇编语言程序,将两个分别存储在8000H -8001H和8002H-8003H的16位数字相乘。
该程序从存储单元8000H – 8001Hand 8002H – 8003H中获取16位数据。32位结果存储在8050H–8053H单元中。
在这里,我们测试了两个16位数字。结果如下
1111H×1111H = 01234321H
1C24H×0752H = 00CDFF88H
第一次输入
地址 | 数据 |
---|---|
. . . |
. . . |
8000 | 11 |
8001 | 11 |
8002 | 11 |
8003 | 11 |
. . . |
. . . |
第二输入
地址 | 数据 |
---|---|
. . . |
. . . |
8000 | 24 |
8001 | 1C |
8002 | 52 |
8003 | 07 |
. . . |
. . . |
地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
---|---|---|---|---|
F000 | 31,00,20 | LXI SP,2000H | InitializeStack指针 | |
F003 | 2A,00、80 | LHLD 8000H | 从8000H-8001H加载16位数据 | |
F006 | EB | XCHG | 交换HL和DE的数据 | |
F007 | 2A,02、80 | LHLD 8002H | 加载第二个16位数字 | |
F00A | E5 | PUSH H | 将HL对推入堆栈 | |
F00B | C1 | POP B | 用堆栈中的HL对内容加载BC | |
F00C | 21,00,00 | LXI H,0000H | 清除HL对 | |
F00F | 22、52、80 | SHLD 8052H | 存储0000具有LS 2字节的结果 | |
F012 | 19 | LOOP | DAD D |
将第一个号码添加到HL对 |
F013 | D2、1F,F0 | JNC NINC |
如果CY = 0,则跳至NINC | |
F016 | E5 | PUSH H |
将HL推入堆栈 | |
F017 | 2A,52、80 | LHLD 8052 | 从LS的2字节结果中加载HL对 | |
F01A | 23 | INX H | 增加HLpair | |
F01B | 22、52、80 | SHLD 8052H | 将HL对存储为结果的LS 2字节 | |
F01E | E1 | POP H | 将堆栈内容弹出到HL对 | |
F01F | 0B | DCX B |
DCX B | 减少BCregister对 |
F020 | 78 | MOV A,B | 将B加载到A | |
F021 | B1 | ORA C |
或C与A | |
F022 | C2、12,F0 | JNZ LOOP |
当Z = 0时跳至LOOP | |
F025 | 22、50、80 | SHLD 8050H | 将HL对存储到8050H | |
F028 | 76 | HLT | 终止程序 |
第一输出
地址 | 数据 |
---|---|
. . . |
. . . |
8050 | 21 |
8051 | 43 |
8052 | 23 |
8053 | 01 |
. . . |
. . . |
第二输出
地址 | 数据 |
---|---|
. . . |
. . . |
8050 | 88 |
8051 | FF |
8052 | CD |
8053 | 00 |
. . . |
. . . |
所以我一直在努力完成这个任务,我必须写一个java代码来将两个二进制数相乘为一个字符串。我不知道如何将它们相乘并保存在单独的字符串中,这样我就可以在最后添加它们。有人能给我一些提示吗?我必须用给定的字符串做乘法,但不能将它们转换为整数。我知道如何在纸上做乘法,但不知道如何将其转换为代码。这是我目前为止的代码。
本文向大家介绍程序将8051微处理器中的两个8位数字相乘,包括了程序将8051微处理器中的两个8位数字相乘的使用技巧和注意事项,需要的朋友参考一下 在这里,我们将看到如何使用此8051微控制器将两个8位数字相乘。寄存器A和B将用于乘法。没有其他寄存器可用于乘法。乘法的结果可能超过8位大小。因此,高位字节存储在寄存器B中,低位字节在乘法运算后将存储在累加器A中。 我们在20H和21H位置取两个数字F
本文向大家介绍8085程序查找8位数字的总和,包括了8085程序查找8位数字的总和的使用技巧和注意事项,需要的朋友参考一下 在此程序中,我们将看到如何添加8位数字的数字。 问题陈述 编写8085汇编语言程序,以添加存储在存储单元8000H中的8位数字的数字。 讨论区 要获取8位数字的数字,我们可以使用掩蔽操作。首先,我们将掩盖上半字节,然后是下半字节。遮盖了较低的半字节后,我们必须将其向右旋转以使
本文向大家介绍在8051微处理器中将两个8位数字相除的程序,包括了在8051微处理器中将两个8位数字相除的程序的使用技巧和注意事项,需要的朋友参考一下 在这里,我们将看到除法运算。使用此8051微控制器,此操作将被用于除以两个8位数字。寄存器A和B将用于此操作。没有其他寄存器可用于除法。除法的结果分为两个部分。商部分和余数部分。寄存器A将保留商数,寄存器B将保留余数。 我们在位置20H和21H取两
我想做一个java程序,用户输入一个十进制数,然后它转换成二进制。这是我到目前为止所拥有的,但是当我输入8时,虽然循环只循环一次,只给我0。我知道二进制中的8是1000,所以我不明白我做错了什么。我需要代码变得简单。请帮忙谢谢
本文向大家介绍8085微处理器中的十进制递减计数器程序,包括了8085微处理器中的十进制递减计数器程序的使用技巧和注意事项,需要的朋友参考一下 我们用8085汇编语言编写一个程序,以实现十进制递减计数器(从99到00)。该程序必须在以下条件下运行。 我们向累加器加载99。 在累加器中显示累加器中的计数值。RST5.5处于未屏蔽状态,并且中断系统被启用。 该程序如下: