在MIPS程序集`addi`指令中,如何立即解释十六进制?

时间:2016-05-11 10:13:15

标签: assembly hex mips

当使用十六进制立即值时,是否有关于如何在汇编中解释addi指令(和其他)的标准或建议?

示例:

addi $t0, $zero, 0xffff

我希望这与addi $t0, $zero, -1的意思相同,0xffff0xffffffff符号扩展为addi $t0, $zero, 0x0000ffff,就像处理器所做的那样,但是对汇编程序的事实感到惊讶Mars模拟器将十六进制解释为32位无符号数,并尝试将Rx.Observable .interval(1000) .flatMap(_ => { // JSONP request return Rx.Observable.create(observer => { window.eqfeed_callback = res => { observer.next(res); observer.complete(); }; loadJSONP(QUAKE_URL); }).retry(3); }) .flatMap(res => Rx.Observable.from(res.features)) .map(quake => { return { lat: quake.geometry.coordinates[1], lng: quake.geometry.coordinates[0], size: quake.properties.mag * 10000, code: quake.properties.code }; }) .do(logToConsole) // DEBUG: all objects are logged to the console .distinct(quake => quake.code) // it only log the first object ! .subscribe(logToConsole); 作为伪指令(如果启用了伪指令)。 SPIM模拟器似乎有类似的解释,只是因错误而中止。

我想知道的是汇编程序是否总是以这种方式解释,如果有一个地方写这个或者解释,我找不到任何东西。

1 个答案:

答案 0 :(得分:0)

addi $t0, $zero, 0xffff-> 0x2008ffff 来源:http://www.kurtm.net/mipsasm/index.cgi

还有一个视频-https://www.youtube.com/watch?v=2_bJ6Ei6zWo