繁体   English   中英

使用LC3应用位掩码

[英]Applying a bit mask using lc3

我目前正在上一门组装课程,并且遇到了一个问题,即使在进行在线研究并与教授该课程的教授交谈后,我仍然对如何实现它一无所知。

简而言之,我想知道如何在值上实现位掩码。 例如,如果说您想采用16位值(1000 0011 1100 0001),并将其转换为该值(0000 0000 0111 1111),则可以使用以下方法应用此值的掩码(0000 0000 0111 1111)有人告诉我这是一个OR命令...。除了我在课程随附的lc3文档中没有看到这样的命令。 也许是以不同的方式完成的,但是到目前为止,我在旅行中没有找到任何概述它的文档。

总之,不知道如何使用lc3程序集将位掩码应用于值,对我可用的资源没有运气,这里的任何人如果对材料的理解更好,那么我对如何做到这一点有任何有益的建议?

编辑:是的,这是家庭作业,但是如您所见,我已经用尽了其他选择。

对于任何偶然发现此问题的人,这就是我解决此问题的方法,以及如何在lc3汇编中执行OR指令

;Initialize the variables
.ORIG   x3000
LD  R0, valueRO     
LD  R1, valueR1     
LD  R2, lowOrderZero

;The OR instruction begins now
NOT R3, R0 ;Inverse the value in Register 0 to Register 3
NOT R4, R2 ;Inverse the value in Register 2 to Register 4
AND R5, R3, R4 ;Select either the largest or the closest value and store in R5 (not certain on this one)
NOT R0, R5 ;Inverse the value in Register 5 to Register 0

HALT

valueRO     .FILL   x0014
valueR1     .FILL   x0023
lowOrderZero    .FILL   x007F

在此示例中,我用工具处理R0中的值,并对R0中的值应用了0000 0000 0111 1111位掩码

特别感谢奥克兰大学的Comp Sci讲师

暂无
暂无

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

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