[英]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位掩码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.