繁体   English   中英

如何从二进制数程序集8086打印十六进制数

[英]how to print hexadecimal number from binary number assembly 8086

如何转换二进制数汇编8086中的十六进制数? 我需要从二进制数字-十六进制数字/

我将帮助您使用算法(我也会提供代码,但我也不希望您错过编程的乐趣):您首先将二进制数捕获为字符串(使用int 21h,ah = 0Ah ),然后您将字符从右分成4组(例如,使用寄存器SI作为指针,使用CX作为计数器),每组都是一个十六进制数字,您可以将该数字存储在另一个字符串中(也从右 ,将DI寄存器用于第二个字符串),例如:

10 1010 1011 0111    ◄ BINARY
2    A    B    7     ◄ HEX

请记住,位是从右计数的,所以每个组将需要一个过程将其从二进制转换为十六进制,这就是如何以2的幂为每个二进制字符赋值:

1011 
│││└─ 2^0 = 1 ─┐
││└── 2^1 = 2  │ 1+2+8 = 11 (B hex digit)
│└─── 2^2 = 4  │ Notice 4 is ignored because its bin character is zero.
└──── 2^3 = 8 ─┘

您不需要获得2的幂的过程,因为您只有4个字符的组,只需遍历每个字符,如果为“ 1”,则添加适当的值(1、2、4、8)为零时忽略它。

请注意,最后一个组可能是奇数,一旦使它适用于偶数组,就可以处理最后一个奇数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM