8085程序查找累加器中置位位
在这里我们将学习如何查找累加器数据中置位位的位置。
问题陈述
编写8085汇编语言程序来查找位为1的位置。在累加器中,所有位都为0,只有一个位为1。我们必须获得值为1的位的位置。位置将以十进制形式显示,从1到8。
讨论
我们取一个类似(0010 0000)的数字。位值为6。因此,我们通过进位将数字向右旋转。如果进位位为1,则我们中断循环并在内存位置F051处获得结果。
输入
地址 | 数据 |
---|---|
F050 | 20 |
地址 | 数据 |
---|---|
F050 | 80 |
流程图
程序
地址 | 十六进制代码 | 标签 | 指令 | 注释 |
---|---|---|---|---|
F000 | 3A, 50 F0 | | LDA F050 | 将内存中的数字加载到累加器中 |
F003 | 0E, 00 | | MVI C,00H | 清零C标志 |
F005 | 1F | LOOP: | RAR | 带进位的右移累加器 |
F006 | 0C | | INR C | C加1 |
F007 | D2, 05, F0 | | JNC LOOP | 如果C不为1,跳转到LOOP |
F00A | 79 | | MOV A,C | 将C的值移到A |
F00B | 32, 51, 50 | | STA F051 | 将结果存储到内存中 |
F00E | 76 | | HLT | 终止程序 |
输出
地址 | 数据 |
---|---|
F051 | 06 |
地址 | 数据 |
---|---|
F150 | 08 |
广告