”(8051)如何转换为16位十六进制数至12号码?

J

JerryYiu

Guest
检验手段甲,R2的(100)
检验手段乙,#10
DIV的甲,乙

退赛

我发现这一个地方
, 但DIV的甲,乙只能处理8位,什么是16位转换代码?

请解释这个概念
, 给我一个示例代码,
非常感谢。

 
做一些功课
, 修改此代码操作,带有2个字节只..

代码:

;六至十进制

;

;六配输入8个字节XX0.XX1.XX2.XX3.XX4.XX5.XX6.XX7

;用来做为十进制数加法器:YY0.YY1.YY2.YY3.YY4.YY5.YY6.YY7.YY8

;十进制输出9个字节:ZZ0.ZZ1.ZZ2.ZZ3.ZZ4.ZZ5.ZZ6.ZZ7.ZZ8

;

;在我的情况下,yy8和zz8是从未使用过这一常规,但所有

,这26个字节在地址连续的,被xx0最低的。

;

X2D:呼叫CLEARYZ;;清除月月和zz字节

检验手段YY0,#1;十进制加法器= 1

;;;

检验手段R0,#XX7;,以找出多少字节数据

检验手段乙,#8;,可能的8字节瓦/数据二十

BITS1:检验手段甲,@ R0;;取得字节从输入寄存器

CJNE甲,#0,BITS2;,如果发现的第一个非0上升

12月R0;;转到低字节

DJNZ乙,BITS1;;一个字节完成,又来了

;;

BITS2:检验手段甲,#8;; 8位每字节,B包含字节#

乘法指令抗体;,阿=数量的BITS瓦/数据

检验手段的BITS,阿;;保存

CJNE甲,#0,X2DMAIN2;;乙=位数糯数/数据

退赛;;若当局只在二十零点返回

;;

X2DMAIN1:呼叫X2DSHIFTD;;位移十进制结果

X2DMAIN2:呼叫X2DSHIFTH;;位移糖醛酸

捷迅X2DMAIN3;,如果不执行,跳过它

呼叫X2DADD;;地址的新结果

X2DMAIN3:DJNZ钻头,X2DMAIN1;,1位完成,又来了

退赛;,一般退出这个例程

;; ZZ0 - ZZ7的CONTAINS十进制结果

;;

X2DSHIFTD:检验手段R0,#YY0;,月月* 2(十进制)

检验手段乙,#8;;的字节数

CLR的荤;;必要性进行零

X2DSHIFTD1:检验手段甲,@ R0;;忽视上carry

数据流向自动控制甲,@ R0;;地址字节本身

伤残甲;;十进制调整

检验手段@ R0,阿;;放回去

公司R0;;转到高字节

DJNZ乙,X2DSHIFTD1;;做8个字节

退赛;;返回

;;

X2DSHIFTH:检验手段R0,#XX7;;位移XX7 - “XX0权利1位

检验手段乙,#8;;的字节数

SHIFTR0B:CLR的荤;;必要性进行零

SHIFTR0B1:检验手段甲,@ R0;;取得字节

区域参考甲;;向右7860进位

检验手段@ R0,阿;;保存回

12月R0;;转到低字节

DJNZ乙,SHIFTR0B1;,做一次“B”的时代

退赛;;返回

;;

X2DADD:检验手段R0,#ZZ0;;取得结果两个负载8个字节寄存器

检验手段乙,#8;; 8个字节

检验手段R1,#YY0;;得到月月算

CLR的荤;;必要性带走

X2DADD1:检验手段甲,@ R0;;两个负载=两个负载 月月(8字节)宽/ DAA

数据流向自动控制甲,@ R1;;地址字节字节8倍

伤残甲;;十进制调整

检验手段@ R0,阿;;放回去

公司R0;;凹凸猎犬的下一个字节

公司R1;;凹凸猎犬的下一个字节

DJNZ乙,X2DADD1;;一个字节完成,又来了

检验手段甲,ZZ8;,去年到9日进行的两个负载字节

数据流向自动控制甲,#0;,只要继续给ZZ8

检验手段ZZ8,阿;;

退赛;;返回
 

Welcome to EDABoard.com

Sponsor

Back
Top