8085程序查找16位数的1补码和2补码


在这个程序中,我们将看到如何查找16位数的1补码和2补码。

问题陈述

编写8085汇编语言程序,查找存储在8000H和8001H中的16位数的1补码和2补码。

讨论

8085有一个指令CMA。此指令对累加器的内容取反。对于1补码,CMA指令就足够了,对于2补码,我们需要在取反后将数字加1。

对于16位数,我们将数字放入HL对中,但是为了取反,我们必须将数字从H和L逐一复制到累加器中。然后通过INX指令,我们将增加HL对以获得2补码

我们从8000H和8001H获取数字,并将1补码存储在8050H和8051H位置,并将2补码存储在8052H和8053H位置。

输入

地址
数据
.
.
.
.
.
.
8000
CD
8001
AB
.
.
.
.
.
.


流程图

程序

地址
十六进制代码
助记符
注释
F000
2A, 00, 80
LHLD 8000H
将内存中的数字加载到HL
F003
7C
MOV A, H
将H的内容加载到A
F004
2F
CMA
对累加器取反
F005
67
MOV H, A
用A替换H
F006
7D
MOV A, L
将L的内容加载到A
F007
2F
CMA
对累加器取反
F008
6F
MOV L, A
用A替换L
F009
22, 50, 80
SHLD 8050H
存储1补码结果
F00C
23
INX H
将HL加1
F00D
22, 52, 80
SHLD 8052H
存储2补码结果
F010
76
HLT
终止程序


输出

地址
数据
.
.
.
.
.
.
8050
32
8051
54
8052
33
8053
54
.
.
.
.
.
.


更新于: 2019年7月30日

2K+ 次查看

开启你的职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.