assembly - MSP430 中的 sxt 指令究竟做了什么?
问题描述
我知道这sxt
是符号扩展指令。但我不明白这到底是如何工作的。例如,如果我的r15
寄存器存储 byte 0045
,那该怎么sxt r15
办?
解决方案
我一直在处理大量使用此指令的问题。要将其压缩为单个函数,我会将其(使用 Pythonic 语法)编写为:
def sxt(x):
if x % 256 > 127: # if top bit of low byte is set
x |= 0xff00
else:
x &= 0x00ff
这可以写得更紧凑,也可能更有效。此版本旨在为非 asm-native 用户提供最直观的体验。
另请注意,该函数假定您将输入作为两个字节字传递,就像sxt
指令操作一样,0xhhhh
其中 h 是一个十六进制数字,您可以在 Python 中执行此操作。
推荐阅读
- javascript - 没有使用 FilePond ReactJs 的上传按钮
- firebase - 在 Firebase 存储中公开文件夹
- opencv - 如何在opencv的神经网络模块(caffe)中使用pytorch迁移学习模块(.pth)生成的模型?
- html - 在 Bootstrap 中,如何让我的元素完全左对齐?
- java - Apache poi 需要所有带有分隔符的公式单元格
- append - 使用追加的 Splunk 查询
- python - 如何在不保存的情况下将小部件画布(纹理)转换为 .png?
- c# - LINQ Context 无法获取 cs 中的表
- flutter - 使用颤振开发不同的屏幕尺寸?
- java - 如何使用 for 循环打印它?