我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1056|回复: 9

[其他格式] 汇编码、机器码、十六进制码 相互转换

[复制链接]

该用户从未签到

4

主题

2

回帖

0

积分

一级逆天

积分
0

终身成就奖

发表于 2022-2-23 21:28:36 | 显示全部楼层 |阅读模式
重要提示:本板块需要二级以上才能下载,没二级以上不要购买下载附件,购买也下载不了--->>>>点这里可以充值快速升级

请保证积分充足再下载,本板块最少需要105积分以上才能下载,如果附件有销售的需要105+销售积分,否则下载不了。

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
汇编码、机器码、十六进制码 相互转换

汇编码(Assembly Code)是用 人类可读的 汇编语言助记符 书写的代码。
机器码(Machine Code)是用 硬件可执行的 二进制 表示的代码。
十六进制码(Hexadecimal Code) 是用 人类可读的 十六进制 表示的代码。
本文将以 国产芯片 ”宏晶 STC12C5A60S2“ 为例,探讨如何进行 汇编码、机器码、十六进制码 相互转换。

1. 连线

首先获取 STC12C5A60S2 芯片,同时获取芯片手册。然后接好电路,如图:



这里用 国产芯片 “PL2303” 作为 USB-TTL烧写工具。上位机运行 STC-ISP 程序,使用方法参见官方。
图中用了简化画法,只画出需 连线 的 引脚,其他则省略,以简单示意。

还有一种更为专业的做法,就是不用 开发板 而是自己接 芯片外围电路,如此可以参见 芯片手册的线路图。

2. 汇编码 与 机器码

一条汇编指令,例如我们熟悉的 LJMP长跳转,通常是第一条指令。如何实现 汇编码 与 机器码 的 相互转换 呢?

查看 指令集 可知 汇编码 的 机器码:



那么 转换就应该是这样:

2.1 汇编码 到 机器码

例如看到 汇编指令 LJMP 0x5555;,先转换 助记符 LJMP 为 命令 0x02,再转换 数字 0x5555 为 数据 0x55 0x55。
因此转换到 机器码 就是 0x02 0x55 0x55 本身:



2.2 机器码 到 汇编码:

同理看到 机器码 0x02,就知道这条 命令 对应的 汇编指令 是 LJMP addr16。这是个 3 字节指令,因此再看两个字节 0x55 0x55,它们就是 数据,长跳转 到的地址。



机器码 是能够直接 烧写 到芯片 内存 中的代码。还有一种能够直接烧写 到芯片 内存 中的代码,叫 十六进制码。

3. 机器码 与 十六进制码

十六进制码 的一个好处是能指定 地址。如何实现 机器码 与 十六进制码 的 相互转换 呢?

3.0 准备

十六进制码 格式如下:



补充说明:
类型:0x00 表示 数据,0x01 表示结束。
地址:两个字节地址。大于 64KB 的情况可以用 另一种类型 烧写,可以参见 HEX文件格式。
校验码:使所有字节之和等于 0x100。

我们首先写一段汇编码:



功能是 输出 #0x55 到 0x80。#0x55 是一个 立即数,0x80 是 STC 的 端口 P0。

为 显示 起见,我们在 P0 端口接上 发光二极管,连线如图:



这样这段汇编码功能就变成 交替点亮发光二极管。

用 2. 节所述方法,将 汇编码 转换到 机器码:



现在实现 机器码 与 十六进制码 的 相互转换:

3.1 机器码 到 十六进制码

依照 3.0节 所述格式,从 机器码 得到 十六进制码:



可以看到 十六进制码 包含有 二进制码 的 显式形式。

3.2 十六进制码 到 机器码:

同理依照 3.0节 所述格式,有 十六进制码 也可得到原来的 机器码:



进而还可用 2. 节所述方法,得到原来的 汇编码:
回复

使用道具 举报

该用户从未签到

3

主题

4632

回帖

0

积分

PADS20200316初级班

积分
0

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

发表于 2022-2-23 21:35:32 | 显示全部楼层
重要提示:本板块需要二级以上才能下载,没二级以上不要购买下载附件,购买也下载不了--->>>>点这里可以充值快速升级

请保证积分充足再下载,本板块最少需要105积分以上才能下载,如果附件有销售的需要105+销售积分,否则下载不了。

回复

使用道具 举报

  • TA的每日心情
    开心
    2024-11-2 16:06
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    2

    主题

    4503

    回帖

    1600

    积分

    PADS20210412初级班

    积分
    1600

    社区居民终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    发表于 2022-2-23 21:38:40 | 显示全部楼层
    重要提示:本板块需要二级以上才能下载,没二级以上不要购买下载附件,购买也下载不了--->>>>点这里可以充值快速升级

    请保证积分充足再下载,本板块最少需要105积分以上才能下载,如果附件有销售的需要105+销售积分,否则下载不了。

    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    6740

    回帖

    1280

    积分

    二级逆天

    积分
    1280

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    发表于 2022-2-24 07:39:00 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:01
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    5

    主题

    3840

    回帖

    3790

    积分

    PADS20220105初级班

    积分
    3790

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    发表于 2022-2-24 08:11:42 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:51
  • 签到天数: 54 天

    [LV.5]常住居民I

    2

    主题

    1万

    回帖

    2万

    积分

    三级逆天

    积分
    20559

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2022-2-24 08:55:48 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    6

    主题

    724

    回帖

    0

    积分

    二级逆天

    积分
    0

    终身成就奖

    发表于 2022-2-24 09:01:10 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 136 天

    [LV.7]常住居民III

    6

    主题

    6779

    回帖

    1万

    积分

    三级逆天

    积分
    14292

    终身成就奖特殊贡献奖原创先锋奖

    发表于 2022-3-10 08:13:04 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    14

    主题

    4695

    回帖

    8873

    积分

    二级逆天

    积分
    8873

    终身成就奖特殊贡献奖原创先锋奖

    发表于 2022-3-10 08:46:11 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    104

    主题

    866

    回帖

    0

    积分

    二级逆天

    积分
    0

    终身成就奖金点子奖

    发表于 2022-12-11 10:04:36 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    每日签到,有金币领取。


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表