以下是评估练习的问题,如下所示。尽管我从网上找到并总结了答案,但我仍然不知道Java编程是如何工作的,因为Java编程可以帮助初学者理解逻辑,因此我更有可能将其转换为Sigma 16系统中的汇编语言。
问: Sigma16系统在内存中有一个16位有符号数组X。写一个汇编语言程序来写第二个数组,如果X的第i个元素是偶数,Y的第i个元素是0,如果是奇数,Y的第i个元素是1。
Ans:
ADD R1, R0, R0 ; i = 0
LEA R2, 4[R0] ; R2 = 4
LEA R3, 1[R0] ; R3 = 1
LEA R4, 2[R0] ; R4 = 2
Loop LOAD R5, X[R1] ; R5 = x[i]
DIV R6, R5, R4 ; x[i] / 2
STORE R15, Y[R1] ; y[i] = x[i] mod 2
ADD R1, R1, R3 ; i++
CMPLT R15, R1, R2 ; If i< 4 then⋯
JUMPT R15, Loop[R0] ; Loop
TRAP R0,R0,R0非常感谢您的回答。如果上面的代码带有错误,也请纠正它们。
https://stackoverflow.com/questions/51371324
复制相似问题