{"id":1257,"date":"2023-03-16T12:07:42","date_gmt":"2023-03-16T12:07:42","guid":{"rendered":"https:\/\/262235.xyz\/?p=1257"},"modified":"2023-03-16T12:07:42","modified_gmt":"2023-03-16T12:07:42","slug":"1257","status":"publish","type":"post","link":"https:\/\/lyvba.com\/index.php\/2023\/03\/16\/1257\/","title":{"rendered":"RARS \u6c47\u7f16\u6a21\u62df\u5668\u652f\u6301\u7684RISC-V\u6307\u4ee4"},"content":{"rendered":"<h2>Supported Instructions (\u652f\u6301\u7684\u6307\u4ee4)<\/h2>\n<table>\n<thead>\n<tr>\n<th>Example Usage<\/th>\n<th>\u4e2d\u6587\u63cf\u8ff0<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>add t1,t2,t3<\/td>\n<td>\u52a0\u6cd5\uff1a\u8bbe t1 \u4e3a\uff08t2 \u52a0 t3\uff09<\/td>\n<td>Addition: set t1 to (t2 plus t3)<\/td>\n<\/tr>\n<tr>\n<td>addi t1,t2,-100<\/td>\n<td>\u52a0\u6cd5\u7acb\u5373\u6570\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\uff08t2 \u52a0\u4e0a\u5e26\u7b26\u53f7\u7684 12 \u4f4d\u7acb\u5373\u6570\uff09<\/td>\n<td>Addition immediate: set t1 to (t2 plus signed 12-bit immediate)<\/td>\n<\/tr>\n<tr>\n<td>and t1,t2,t3<\/td>\n<td>\u6309\u4f4d\u4e0e\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a t2 \u548c t3 \u7684\u6309\u4f4d\u4e0e<\/td>\n<td>Bitwise AND : Set t1 to bitwise AND of t2 and t3<\/td>\n<\/tr>\n<tr>\n<td>andi t1,t2,-100<\/td>\n<td>\u6309\u4f4d\u4e0e\u7acb\u5373\u6570\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a t2 \u7684\u6309\u4f4d\u4e0e\u548c\u7b26\u53f7\u6269\u5c55\u7684 12 \u4f4d\u7acb\u5373\u6570<\/td>\n<td>Bitwise AND immediate : Set t1 to bitwise AND of t2 and sign-extended 12-bit immediate<\/td>\n<\/tr>\n<tr>\n<td>auipc t1,10000<\/td>\n<td>\u5c06\u9ad8\u4f4d\u7acb\u5373\u6570\u6dfb\u52a0\u5230 pc\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\uff08pc \u52a0\u4e0a\u9ad8\u4f4d 20 \u4f4d\u7acb\u5373\u6570\uff09<\/td>\n<td>Add upper immediate to pc: set t1 to (pc plus an upper 20-bit immediate)<\/td>\n<\/tr>\n<tr>\n<td>beq t1,t2,label<\/td>\n<td>Branch if equal : \u5982\u679c t1 \u548c t2 \u76f8\u7b49\u5219\u5206\u652f\u5230\u6807\u7b7e\u5730\u5740\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if equal : Branch to statement at label's address if t1 and t2 are equal<\/td>\n<\/tr>\n<tr>\n<td>bge t1,t2,label<\/td>\n<td>Branch if greater than or equal\uff1a\u5982\u679c t1 \u5927\u4e8e\u6216\u7b49\u4e8e t2\uff0c\u5219\u5206\u652f\u5230\u6807\u7b7e\u5730\u5740\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if greater than or equal: Branch to statement at label's address if t1 is greater than or equal to t2<\/td>\n<\/tr>\n<tr>\n<td>bgeu t1,t2,label<\/td>\n<td>Branch if greater than or equal to (unsigned)\uff1a\u5982\u679c t1 \u5927\u4e8e\u6216\u7b49\u4e8e t2\uff0c\u5219\u5206\u652f\u5230\u6807\u7b7e\u5730\u5740\u5904\u7684\u8bed\u53e5\uff08\u65e0\u7b26\u53f7\u89e3\u91ca\uff09<\/td>\n<td>Branch if greater than or equal to (unsigned): Branch to statement at label's address if t1 is greater than or equal to t2 (with an unsigned interpretation)<\/td>\n<\/tr>\n<tr>\n<td>blt t1,t2,label<\/td>\n<td>Branch if less than\uff1a\u5982\u679c t1 \u5c0f\u4e8e t2\uff0c\u5219\u5206\u652f\u5230\u6807\u7b7e\u5730\u5740\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if less than: Branch to statement at label's address if t1 is less than t2<\/td>\n<\/tr>\n<tr>\n<td>bltu t1,t2,label<\/td>\n<td>Branch if less than (unsigned)\uff1a\u5982\u679c t1 \u5c0f\u4e8e t2\uff0c\u5219\u5206\u652f\u5230\u6807\u7b7e\u5730\u5740\u5904\u7684\u8bed\u53e5\uff08\u65e0\u7b26\u53f7\u89e3\u91ca\uff09<\/td>\n<td>Branch if less than (unsigned): Branch to statement at label's address if t1 is less than t2 (with an unsigned interpretation)<\/td>\n<\/tr>\n<tr>\n<td>bne t1,t2,label<\/td>\n<td>Branch if not equal : \u5982\u679c t1 \u548c t2 \u4e0d\u76f8\u7b49\u5219\u5206\u652f\u5230\u6807\u7b7e\u5730\u5740\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if not equal : Branch to statement at label's address if t1 and t2 are not equal<\/td>\n<\/tr>\n<tr>\n<td>csrrc t0, fcsr, t1<\/td>\n<td>\u539f\u5b50\u8bfb\u53d6\/\u6e05\u9664 CSR\uff1a\u4ece CSR \u8bfb\u53d6\u5230 t0 \u5e76\u6839\u636e t1 \u6e05\u9664 CSR \u7684\u4f4d<\/td>\n<td>Atomic Read\/Clear CSR: read from the CSR into t0 and clear bits of the CSR according to t1<\/td>\n<\/tr>\n<tr>\n<td>csrrci t0, fcsr, 10<\/td>\n<td>\u7acb\u5373\u539f\u5b50\u8bfb\u53d6\/\u6e05\u9664 CSR\uff1a\u4ece CSR \u8bfb\u53d6\u5230 t0 \u5e76\u6839\u636e\u5e38\u91cf\u6e05\u9664 CSR \u7684\u4f4d<\/td>\n<td>Atomic Read\/Clear CSR Immediate: read from the CSR into t0 and clear bits of the CSR according to a constant<\/td>\n<\/tr>\n<tr>\n<td>csrrs t0, fcsr, t1<\/td>\n<td>\u539f\u5b50\u8bfb\u53d6\/\u8bbe\u7f6e CSR\uff1a\u4ece CSR \u8bfb\u53d6\u5230 t0 \u5e76\u5c06\u903b\u8f91\u6216 t1 \u8bfb\u53d6\u5230 CSR<\/td>\n<td>Atomic Read\/Set CSR: read from the CSR into t0 and logical or t1 into the CSR<\/td>\n<\/tr>\n<tr>\n<td>csrrsi t0, fcsr, 10<\/td>\n<td>\u7acb\u5373\u539f\u5b50\u8bfb\u53d6\/\u8bbe\u7f6e CSR\uff1a\u4ece CSR \u8bfb\u53d6\u5230 t0 \u5e76\u5c06\u903b\u8f91\u6216\u5e38\u91cf\u8bfb\u53d6\u5230 CSR<\/td>\n<td>Atomic Read\/Set CSR Immediate: read from the CSR into t0 and logical or a constant into the CSR<\/td>\n<\/tr>\n<tr>\n<td>csrrw t0, fcsr, t1<\/td>\n<td>\u539f\u5b50\u8bfb\/\u5199 CSR\uff1a\u4ece CSR \u8bfb\u5165 t0 \u5e76\u5c06 t1 \u5199\u5165 CSR<\/td>\n<td>Atomic Read\/Write CSR: read from the CSR into t0 and write t1 into the CSR<\/td>\n<\/tr>\n<tr>\n<td>csrrwi t0, fcsr, 10<\/td>\n<td>\u539f\u5b50\u8bfb\/\u5199 CSR \u7acb\u5373\uff1a\u4ece CSR \u8bfb\u53d6\u5230 t0 \u5e76\u5c06\u5e38\u91cf\u5199\u5165 CSR<\/td>\n<td>Atomic Read\/Write CSR Immediate: read from the CSR into t0 and write a constant into the CSR<\/td>\n<\/tr>\n<tr>\n<td>div t1,t2,t3<\/td>\n<td>\u9664\u6cd5\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a t2\/t3 \u7684\u7ed3\u679c<\/td>\n<td>Division: set t1 to the result of t2\/t3<\/td>\n<\/tr>\n<tr>\n<td>divu t1,t2,t3<\/td>\n<td>\u9664\u6cd5\uff1a\u4f7f\u7528\u65e0\u7b26\u53f7\u9664\u6cd5\u5c06 t1 \u8bbe\u7f6e\u4e3a t2\/t3 \u7684\u7ed3\u679c<\/td>\n<td>Division: set t1 to the result of t2\/t3 using unsigned division<\/td>\n<\/tr>\n<tr>\n<td>ebreak<\/td>\n<td>\u6682\u505c\u6267\u884c<\/td>\n<td>Pause execution<\/td>\n<\/tr>\n<tr>\n<td>ecall<\/td>\n<td>\u53d1\u51fa\u7cfb\u7edf\u8c03\u7528\uff1a\u6267\u884ca7\u4e2d\u503c\u6307\u5b9a\u7684\u7cfb\u7edf\u8c03\u7528<\/td>\n<td>Issue a system call : Execute the system call specified by value in a7<\/td>\n<\/tr>\n<tr>\n<td>fadd.d f1, f2, f3, dyn<\/td>\n<td>\u6d6e\u52a8 ADD\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 + f3<\/td>\n<td>Floating ADD (64 bit): assigns f1 to f2 + f3<\/td>\n<\/tr>\n<tr>\n<td>fadd.s f1, f2, f3, dyn<\/td>\n<td>\u6d6e\u52a8 ADD\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 + f3<\/td>\n<td>Floating ADD: assigns f1 to f2 + f3<\/td>\n<\/tr>\n<tr>\n<td>fclass.d t1, f1<\/td>\n<td>\u5bf9\u4e00\u4e2a\u6d6e\u70b9\u6570\uff0864\u4f4d\uff09\u8fdb\u884c\u5206\u7c7b<\/td>\n<td>Classify a floating point number (64 bit)<\/td>\n<\/tr>\n<tr>\n<td>fclass.s t1, f1<\/td>\n<td>\u5bf9\u4e00\u4e2a\u6d6e\u70b9\u6570\u8fdb\u884c\u5206\u7c7b<\/td>\n<td>Classify a floating point number<\/td>\n<\/tr>\n<tr>\n<td>fcvt.d.s t1, f1, dyn<\/td>\n<td>\u5c06 float \u8f6c\u6362\u4e3a double\uff1a\u5c06 f2 \u7684\u503c\u5206\u914d\u7ed9 f1<\/td>\n<td>Convert a float to a double: Assigned the value of f2 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.d.w f1, t1, dyn<\/td>\n<td>\u4ece\u6574\u6570\u8f6c\u6362\u4e3a\u53cc\u7cbe\u5ea6\uff1a\u5c06 t1 \u7684\u503c\u8d4b\u7ed9 f1<\/td>\n<td>Convert double from integer: Assigns the value of t1 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.d.wu f1, t1, dyn<\/td>\n<td>\u4ece\u65e0\u7b26\u53f7\u6574\u6570\u8f6c\u6362\u53cc\u7cbe\u5ea6\u6570\uff1a\u5c06 t1 \u7684\u503c\u8d4b\u7ed9 f1<\/td>\n<td>Convert double from unsigned integer: Assigns the value of t1 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.s.d t1, f1, dyn<\/td>\n<td>\u5c06\u53cc\u7cbe\u5ea6\u578b\u8f6c\u6362\u4e3a\u6d6e\u70b9\u578b\uff1a\u5c06 f2 \u7684\u503c\u5206\u914d\u7ed9 f1<\/td>\n<td>Convert a double to a float: Assigned the value of f2 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.s.w f1, t1, dyn<\/td>\n<td>\u4ece\u6574\u6570\u8f6c\u6362\u4e3a\u6d6e\u70b9\u6570\uff1a\u5c06 t1 \u7684\u503c\u8d4b\u7ed9 f1<\/td>\n<td>Convert float from integer: Assigns the value of t1 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.s.wu f1, t1, dyn<\/td>\n<td>\u4ece\u65e0\u7b26\u53f7\u6574\u6570\u8f6c\u6362\u6d6e\u70b9\u6570\uff1a\u5c06 t1 \u7684\u503c\u8d4b\u7ed9 f1<\/td>\n<td>Convert float from unsigned integer: Assigns the value of t1 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.w.d t1, f1, dyn<\/td>\n<td>\u4ece\u53cc\u7cbe\u5ea6\u8f6c\u6362\u6574\u6570\uff1a\u5c06 f1 \u7684\u503c\uff08\u56db\u820d\u4e94\u5165\uff09\u5206\u914d\u7ed9 t1<\/td>\n<td>Convert integer from double: Assigns the value of f1 (rounded) to t1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.w.s t1, f1, dyn<\/td>\n<td>\u4ece\u6d6e\u70b9\u6570\u8f6c\u6362\u6574\u6570\uff1a\u5c06 f1 \u7684\u503c\uff08\u56db\u820d\u4e94\u5165\uff09\u8d4b\u503c\u7ed9 t1<\/td>\n<td>Convert integer from float: Assigns the value of f1 (rounded) to t1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.wu.d t1, f1, dyn<\/td>\n<td>\u4ece double \u8f6c\u6362\u672a\u7b7e\u540d\u7684\u6574\u6570\uff1a\u5c06 f1 \u7684\u503c\uff08\u56db\u820d\u4e94\u5165\uff09\u5206\u914d\u7ed9 t1<\/td>\n<td>Convert unsinged integer from double: Assigns the value of f1 (rounded) to t1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.wu.s t1, f1, dyn<\/td>\n<td>\u5c06\u6d6e\u70b9\u6570\u8f6c\u6362\u4e3a\u65e0\u7b26\u53f7\u6574\u6570\uff1a\u5c06 f1 \u7684\u503c\uff08\u56db\u820d\u4e94\u5165\uff09\u8d4b\u503c\u7ed9 t1<\/td>\n<td>Convert unsinged integer from float: Assigns the value of f1 (rounded) to t1<\/td>\n<\/tr>\n<tr>\n<td>fdiv.d f1, f2, f3, dyn<\/td>\n<td>\u6d6e\u52a8 DIVide\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 \/ f3<\/td>\n<td>Floating DIVide (64 bit): assigns f1 to f2 \/ f3<\/td>\n<\/tr>\n<tr>\n<td>fdiv.s f1, f2, f3, dyn<\/td>\n<td>\u6d6e\u52a8 DIVide\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 \/ f3<\/td>\n<td>Floating DIVide: assigns f1 to f2 \/ f3<\/td>\n<\/tr>\n<tr>\n<td>fence 1, 1<\/td>\n<td>\u786e\u4fdd\u56f4\u680f\u4e4b\u524d\u7684 IO \u548c\u5185\u5b58\u8bbf\u95ee\u53d1\u751f\u5728\u4e0d\u540c\u7ebf\u7a0b\u67e5\u770b\u7684\u4ee5\u4e0b IO \u548c\u5185\u5b58\u8bbf\u95ee\u4e4b\u524d<\/td>\n<td>Ensure that IO and memory accesses before the fence happen before the following IO and memory accesses as viewed by a different thread<\/td>\n<\/tr>\n<tr>\n<td>fence.i<\/td>\n<td>\u786e\u4fdd\u6307\u4ee4\u5b58\u50a8\u5668\u7684\u5b58\u50a8\u5bf9\u6307\u4ee4\u63d0\u53d6\u53ef\u89c1<\/td>\n<td>Ensure that stores to instruction memory are visible to instruction fetches<\/td>\n<\/tr>\n<tr>\n<td>feq.d t1, f1, f2<\/td>\n<td>Floating EQuals\uff0864 \u4f4d\uff09\uff1a\u5982\u679c f1 = f2\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Floating EQuals (64 bit): if f1 = f2, set t1 to 1, else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>feq.s t1, f1, f2<\/td>\n<td>\u6d6e\u52a8\u76f8\u7b49\uff1a\u5982\u679c f1 = f2\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Floating EQuals: if f1 = f2, set t1 to 1, else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>fld f1, -100(t1)<\/td>\n<td>\u4ece\u5185\u5b58\u4e2d\u52a0\u8f7d\u4e00\u4e2a double<\/td>\n<td>Load a double from memory<\/td>\n<\/tr>\n<tr>\n<td>fle.d t1, f1, f2<\/td>\n<td>\u5c0f\u4e8e\u6216\u7b49\u4e8e\u6d6e\u52a8\uff0864 \u4f4d\uff09\uff1a\u5982\u679c f1 &lt<br \/>\n;= f2\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Floating Less than or Equals (64 bit): if f1 &lt;= f2, set t1 to 1, else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>fle.s t1, f1, f2<\/td>\n<td>\u6d6e\u52a8\u5c0f\u4e8e\u6216\u7b49\u4e8e\uff1a\u5982\u679c f1 &lt;= f2\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Floating Less than or Equals: if f1 &lt;= f2, set t1 to 1, else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>flt.d t1, f1, f2<\/td>\n<td>\u5c0f\u4e8e\u6d6e\u52a8\uff0864 \u4f4d\uff09\uff1a\u5982\u679c f1 &lt; f2\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Floating Less Than (64 bit): if f1 &lt; f2, set t1 to 1, else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>flt.s t1, f1, f2<\/td>\n<td>\u6d6e\u52a8\u5c0f\u4e8e\uff1a\u5982\u679c f1 &lt; f2\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Floating Less Than: if f1 &lt; f2, set t1 to 1, else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>flw f1, -100(t1)<\/td>\n<td>\u4ece\u5185\u5b58\u4e2d\u52a0\u8f7d\u4e00\u4e2a\u6d6e\u70b9\u6570<\/td>\n<td>Load a float from memory<\/td>\n<\/tr>\n<tr>\n<td>fmadd.d f1, f2, f3, f4, dyn<\/td>\n<td>\u878d\u5408\u4e58\u52a0\uff0864 \u4f4d\uff09\uff1a\u5c06 f2*f3+f4 \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Multiply Add (64 bit): Assigns f2*f3+f4 to f1<\/td>\n<\/tr>\n<tr>\n<td>fmadd.s f1, f2, f3, f4, dyn<\/td>\n<td>\u878d\u5408\u4e58\u52a0\uff1a\u5c06 f2*f3+f4 \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Multiply Add: Assigns f2*f3+f4 to f1<\/td>\n<\/tr>\n<tr>\n<td>fmax.d f1, f2, f3<\/td>\n<td>Floating MAXimum\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f1 \u548c f3 \u4e2d\u7684\u8f83\u5927\u8005<\/td>\n<td>Floating MAXimum (64 bit): assigns f1 to the larger of f1 and f3<\/td>\n<\/tr>\n<tr>\n<td>fmax.s f1, f2, f3<\/td>\n<td>Floating MAXimum\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f1 \u548c f3 \u4e2d\u7684\u8f83\u5927\u8005<\/td>\n<td>Floating MAXimum: assigns f1 to the larger of f1 and f3<\/td>\n<\/tr>\n<tr>\n<td>fmin.d f1, f2, f3<\/td>\n<td>Floating MINimum\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f1 \u548c f3 \u4e2d\u7684\u8f83\u5c0f\u8005<\/td>\n<td>Floating MINimum (64 bit): assigns f1 to the smaller of f1 and f3<\/td>\n<\/tr>\n<tr>\n<td>fmin.s f1, f2, f3<\/td>\n<td>Floating MINimum\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f1 \u548c f3 \u4e2d\u8f83\u5c0f\u7684\u4e00\u4e2a<\/td>\n<td>Floating MINimum: assigns f1 to the smaller of f1 and f3<\/td>\n<\/tr>\n<tr>\n<td>fmsub.d f1, f2, f3, f4, dyn<\/td>\n<td>\u878d\u5408\u4e58\u5b50\uff1a\u5c06 f2*f3-f4 \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Multiply Subatract: Assigns f2*f3-f4 to f1<\/td>\n<\/tr>\n<tr>\n<td>fmsub.s f1, f2, f3, f4, dyn<\/td>\n<td>\u878d\u5408\u4e58\u5b50\uff1a\u5c06 f2*f3-f4 \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Multiply Subatract: Assigns f2*f3-f4 to f1<\/td>\n<\/tr>\n<tr>\n<td>fmul.d f1, f2, f3, dyn<\/td>\n<td>Floating MULtiply\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 * f3<\/td>\n<td>Floating MULtiply (64 bit): assigns f1 to f2 * f3<\/td>\n<\/tr>\n<tr>\n<td>fmul.s f1, f2, f3, dyn<\/td>\n<td>Floating MULtiply\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 * f3<\/td>\n<td>Floating MULtiply: assigns f1 to f2 * f3<\/td>\n<\/tr>\n<tr>\n<td>fmv.s.x f1, t1<\/td>\n<td>\u79fb\u52a8\u6d6e\u70b9\u6570\uff1a\u4ece\u6574\u6570\u5bc4\u5b58\u5668\u4e2d\u79fb\u52a8\u8868\u793a\u6d6e\u70b9\u6570\u7684\u4f4d<\/td>\n<td>Move float: move bits representing a float from an integer register<\/td>\n<\/tr>\n<tr>\n<td>fmv.x.s t1, f1<\/td>\n<td>\u79fb\u52a8\u6d6e\u70b9\u6570\uff1a\u5c06\u8868\u793a\u6d6e\u70b9\u6570\u7684\u4f4d\u79fb\u52a8\u5230\u6574\u6570\u5bc4\u5b58\u5668<\/td>\n<td>Move float: move bits representing a float to an integer register<\/td>\n<\/tr>\n<tr>\n<td>fnmadd.d f1, f2, f3, f4, dyn<\/td>\n<td>Fused Negate Multiply Add\uff0864 \u4f4d\uff09\uff1a\u5c06 -(f2*f3+f4) \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Negate Multiply Add (64 bit): Assigns -(f2*f3+f4) to f1<\/td>\n<\/tr>\n<tr>\n<td>fnmadd.s f1, f2, f3, f4, dyn<\/td>\n<td>Fused Negate Multiply Add\uff1a\u5c06 -(f2*f3+f4) \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Negate Multiply Add: Assigns -(f2*f3+f4) to f1<\/td>\n<\/tr>\n<tr>\n<td>fnmsub.d f1, f2, f3, f4, dyn<\/td>\n<td>\u878d\u5408\u53d6\u53cd\u4e58\u6cd5\u51cf\u6cd5\uff1a\u5c06 -(f2*f3-f4) \u8d4b\u503c\u7ed9 f1<\/td>\n<td>Fused Negated Multiply Subatract: Assigns -(f2*f3-f4) to f1<\/td>\n<\/tr>\n<tr>\n<td>fnmsub.s f1, f2, f3, f4, dyn<\/td>\n<td>\u878d\u5408\u53d6\u53cd\u4e58\u6cd5\u51cf\u6cd5\uff1a\u5c06 -(f2*f3-f4) \u8d4b\u503c\u7ed9 f1<\/td>\n<td>Fused Negated Multiply Subatract: Assigns -(f2*f3-f4) to f1<\/td>\n<\/tr>\n<tr>\n<td>fsd f1, -100(t1)<\/td>\n<td>\u5c06\u53cc\u7cbe\u5ea6\u5b58\u50a8\u5230\u5185\u5b58<\/td>\n<td>Store a double to memory<\/td>\n<\/tr>\n<tr>\n<td>fsgnj.d f1, f2, f3<\/td>\n<td>\u6d6e\u70b9\u7b26\u53f7\u6ce8\u5165\uff0864\u4f4d\uff09\uff1a\u5c06f2\u7684\u7b26\u53f7\u4f4d\u66ff\u6362\u4e3af3\u7684\u7b26\u53f7\u4f4d\u8d4b\u503c\u7ed9f1<\/td>\n<td>Floating point sign injection (64 bit): replace the sign bit of f2 with the sign bit of f3 and assign it to f1<\/td>\n<\/tr>\n<tr>\n<td>fsgnj.s f1, f2, f3<\/td>\n<td>\u6d6e\u70b9\u7b26\u53f7\u6ce8\u5165\uff1a\u5c06f2\u7684\u7b26\u53f7\u4f4d\u66ff\u6362\u4e3af3\u7684\u7b26\u53f7\u4f4d\u8d4b\u503c\u7ed9f1<\/td>\n<td>Floating point sign injection: replace the sign bit of f2 with the sign bit of f3 and assign it to f1<\/td>\n<\/tr>\n<tr>\n<td>fsgnjn.d f1, f2, f3<\/td>\n<td>\u6d6e\u70b9\u7b26\u53f7\u6ce8\u5165\uff08\u53cd\u8f6c64\u4f4d\uff09\uff1a\u5c06f2\u7684\u7b26\u53f7\u4f4d\u66ff\u6362\u4e3af3\u7684\u76f8\u53cd\u7b26\u53f7\u4f4d\u8d4b\u503c\u7ed9f1<\/td>\n<td>Floating point sign injection (inverted 64 bit): replace the sign bit of f2 with the opposite of sign bit of f3 and assign it to f1<\/td>\n<\/tr>\n<tr>\n<td>fsgnjn.s f1, f2, f3<\/td>\n<td>\u6d6e\u70b9\u7b26\u53f7\u6ce8\u5165\uff08\u5012\u7f6e\uff09\uff1a\u5c06f2\u7684\u7b26\u53f7\u4f4d\u66ff\u6362\u4e3af3\u7684\u76f8\u53cd\u7b26\u53f7\u4f4d\u8d4b\u503c\u7ed9f1<\/td>\n<td>Floating point sign injection (inverted): replace the sign bit of f2 with the opposite of sign bit of f3 and assign it to f1<\/td>\n<\/tr>\n<tr>\n<td>fsgnjx.d f1, f2, f3<\/td>\n<td>\u6d6e\u70b9\u7b26\u53f7\u6ce8\u5165\uff08xor 64 bit\uff09\uff1a\u5c06f2\u7684\u7b26\u53f7\u4f4d\u4e0ef3\u7684\u7b26\u53f7\u4f4d\u5f02\u6216\u8d4b\u503c\u7ed9f1<\/td>\n<td>Floating point sign injection (xor 64 bit): xor the sign bit of f2 with the sign bit of f3 and assign it to f1<\/td>\n<\/tr>\n<tr>\n<td>fsgnjx.s f1, f2, f3<\/td>\n<td>\u6d6e\u70b9\u7b26\u53f7\u6ce8\u5165\uff08xor\uff09\uff1a\u5c06f2\u7684\u7b26\u53f7\u4f4d\u4e0ef3\u7684\u7b26\u53f7\u4f4d\u5f02\u6216\u8d4b\u503c\u7ed9f1<\/td>\n<td>Floating point sign injection (xor): xor the sign bit of f2 with the sign bit of f3 and assign it to f1<\/td>\n<\/tr>\n<tr>\n<td>fsqrt.d f1, f2, dyn<\/td>\n<td>\u6d6e\u52a8\u5e73\u65b9\u6839\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 \u7684\u5e73\u65b9\u6839<\/td>\n<td>Floating SQuare RooT (64 bit): Assigns f1 to the square root of f2<\/td>\n<\/tr>\n<tr>\n<td>fsqrt.s f1, f2, dyn<\/td>\n<td>\u6d6e\u52a8\u5e73\u65b9\u6839\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 \u7684\u5e73\u65b9\u6839<\/td>\n<td>Floating SQuare RooT: Assigns f1 to the square root of f2<\/td>\n<\/tr>\n<tr>\n<td>fsub.d f1, f2, f3, dyn<\/td>\n<td>\u6d6e\u52a8\u51cf\u6cd5\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 - f3<\/td>\n<td>Floating SUBtract (64 bit): assigns f1 to f2 - f3<\/td>\n<\/tr>\n<tr>\n<td>fsub.s f1, f2, f3, dyn<\/td>\n<td>\u6d6e\u52a8\u51cf\u6cd5\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 - f3<\/td>\n<td>Floating SUBtract: assigns f1 to f2 - f3<\/td>\n<\/tr>\n<tr>\n<td>fsw f1, -100(t1)<\/td>\n<td>\u5c06\u6d6e\u70b9\u6570\u5b58\u50a8\u5230\u5185\u5b58\u4e2d<\/td>\n<td>Store a float to memory<\/td>\n<\/tr>\n<tr>\n<td>jal t1, target<\/td>\n<td>\u8df3\u8f6c\u548c\u94fe\u63a5\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u7a0b\u5e8f\u8ba1\u6570\u5668\uff08\u8fd4\u56de\u5730\u5740\uff09\uff0c\u7136\u540e\u8df3\u8f6c\u5230\u76ee\u6807\u5730\u5740\u5904\u7684\u8bed\u53e5<\/td>\n<td>Jump and link : Set t1 to Program Counter (return address) then jump to statement at target address<\/td>\n<\/tr>\n<tr>\n<td>jalr t1, t2, -100<\/td>\n<td>\u8df3\u8f6c\u548c\u94fe\u63a5\u5bc4\u5b58\u5668\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u7a0b\u5e8f\u8ba1\u6570\u5668\uff08\u8fd4\u56de\u5730\u5740\uff09\uff0c\u7136\u540e\u8df3\u8f6c\u5230 t2 + \u7acb\u5373\u6570\u5904\u7684\u8bed\u53e5<\/td>\n<td>Jump and link register: Set t1 to Program Counter (return address) then jump to statement at t2 + immediate<\/td>\n<\/tr>\n<tr>\n<td>lb t1, -100(t2)<\/td>\n<td>\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740\u7684\u7b26\u53f7\u6269\u5c55 8 \u4f4d\u503c<\/td>\n<td>Set t1 to sign-extended 8-bit value from effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>lbu t1, -100(t2)<\/td>\n<td>\u5c06 t1 \u8bbe\u7f6e\u4e3a\u4ece\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740\u5f00\u59cb\u7684\u96f6\u6269\u5c55 8 \u4f4d\u503c<\/td>\n<td>Set t1 to zero-extended 8-bit value from effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>lh t1, -100(t2)<\/td>\n<td>\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740\u7684\u7b26\u53f7\u6269\u5c55 16 \u4f4d\u503c<\/td>\n<td>Set t1 to sign-extended 16-bit value from effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>lhu t1, -100(t2)<\/td>\n<td>\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740\u7684\u96f6\u6269\u5c55 16 \u4f4d\u503c<\/td>\n<td>Set t1 to zero-extended 16-bit value from effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>lui t1,10000<\/td>\n<td>\u52a0\u8f7d\u9ad8\u7acb\u5373\u6570\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a 20 \u4f4d\u540e\u8ddf 12 \u4e2a 0<\/td>\n<td>Load upper immediate: set t1 to 20-bit followed by 12 0s<\/td>\n<\/tr>\n<tr>\n<td>lw t1, -100(t2)<\/td>\n<td>\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u7684\u5185\u5bb9<\/td>\n<td>Set t1 to contents of effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>mul t1,t2,t3<\/td>\n<td>\u4e58\u6cd5\uff1a\u5c06t1\u8bbe\u4e3at2*t3\u7684\u4f4e32\u4f4d<\/td>\n<td>Multiplication: set t1 to the lower 32 bits of t2*t3<\/td>\n<\/tr>\n<tr>\n<td>mulh t1,t2,t3<\/td>\n<td>\u4e58\u6cd5\uff1a\u4f7f\u7528\u6709\u7b26\u53f7\u4e58\u6cd5\u5c06 t1 \u8bbe\u7f6e\u4e3a t2*t3 \u7684\u9ad8 32 \u4f4d<\/td>\n<td>Multiplication: set t1 to the upper 32 bits of t2*t3 using signed multiplication<\/td>\n<\/tr>\n<tr>\n<td>mulhsu t1,t2,t3<\/td>\n<td>\u4e58\u6cd5\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a t2*t3 \u7684\u9ad8 32 \u4f4d\uff0c\u5176\u4e2d t2 \u662f\u6709\u7b26\u53f7\u7684\uff0ct3 \u662f\u65e0\u7b26\u53f7\u7684<\/td>\n<td>Multiplication: set t1 to the upper 32 bits of t2*t3 where t2 is signed and t3 is unsigned<\/td>\n<\/tr>\n<tr>\n<td>mulhu t1,t2,t<br \/>\n3<\/td>\n<td>\u4e58\u6cd5\uff1a\u4f7f\u7528\u65e0\u7b26\u53f7\u4e58\u6cd5\u5c06 t1 \u8bbe\u7f6e\u4e3a t2*t3 \u7684\u9ad8 32 \u4f4d<\/td>\n<td>Multiplication: set t1 to the upper 32 bits of t2*t3 using unsigned multiplication<\/td>\n<\/tr>\n<tr>\n<td>or t1,t2,t3<\/td>\n<td>\u6309\u4f4d\u6216\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a t2 \u548c t3 \u7684\u6309\u4f4d\u6216<\/td>\n<td>Bitwise OR : Set t1 to bitwise OR of t2 and t3<\/td>\n<\/tr>\n<tr>\n<td>ori t1,t2,-100<\/td>\n<td>\u6309\u4f4d\u6216\u7acb\u5373\u6570\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a t2 \u548c\u7b26\u53f7\u6269\u5c55\u7684 12 \u4f4d\u7acb\u5373\u6570\u7684\u6309\u4f4d\u6216<\/td>\n<td>Bitwise OR immediate : Set t1 to bitwise OR of t2 and sign-extended 12-bit immediate<\/td>\n<\/tr>\n<tr>\n<td>rem t1,t2,t3<\/td>\n<td>\u4f59\u6570\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a t2\/t3 \u7684\u4f59\u6570<\/td>\n<td>Remainder: set t1 to the remainder of t2\/t3<\/td>\n<\/tr>\n<tr>\n<td>remu t1,t2,t3<\/td>\n<td>\u4f59\u6570\uff1a\u4f7f\u7528\u65e0\u7b26\u53f7\u9664\u6cd5\u5c06 t1 \u8bbe\u7f6e\u4e3a t2\/t3 \u7684\u4f59\u6570<\/td>\n<td>Remainder: set t1 to the remainder of t2\/t3 using unsigned division<\/td>\n<\/tr>\n<tr>\n<td>sb t1, -100(t2)<\/td>\n<td>Store byte : \u5c06t1\u7684\u4f4e8\u4f4d\u5b58\u5165\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740<\/td>\n<td>Store byte : Store the low-order 8 bits of t1 into the effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>sh t1, -100(t2)<\/td>\n<td>Store halfword : \u5c06t1\u7684\u4f4e16\u4f4d\u5b58\u5165\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740<\/td>\n<td>Store halfword : Store the low-order 16 bits of t1 into the effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>sll t1,t2,t3<\/td>\n<td>\u5de6\u79fb\u903b\u8f91\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u5c06 t2 \u5de6\u79fb t3 \u7684\u4f4e 5 \u4f4d\u4e2d\u7684\u503c\u6307\u5b9a\u7684\u4f4d\u6570\u7684\u7ed3\u679c<\/td>\n<td>Shift left logical: Set t1 to result of shifting t2 left by number of bits specified by value in low-order 5 bits of t3<\/td>\n<\/tr>\n<tr>\n<td>slli t1,t2,10<\/td>\n<td>\u5de6\u79fb\u903b\u8f91\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u5c06 t2 \u5de6\u79fb immediate \u6307\u5b9a\u7684\u4f4d\u6570\u7684\u7ed3\u679c<\/td>\n<td>Shift left logical : Set t1 to result of shifting t2 left by number of bits specified by immediate<\/td>\n<\/tr>\n<tr>\n<td>slt t1,t2,t3<\/td>\n<td>\u8bbe\u7f6e\u5c0f\u4e8e\uff1a\u5982\u679c t2 \u5c0f\u4e8e t3\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Set less than : If t2 is less than t3, then set t1 to 1 else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>slti t1,t2,-100<\/td>\n<td>\u8bbe\u7f6e\u5c0f\u4e8e\u7acb\u5373\u6570\uff1a\u5982\u679c t2 \u5c0f\u4e8e\u7b26\u53f7\u6269\u5c55\u7684 12 \u4f4d\u7acb\u5373\u6570\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Set less than immediate : If t2 is less than sign-extended 12-bit immediate, then set t1 to 1 else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>sltiu t1,t2,-100<\/td>\n<td>\u8bbe\u7f6e\u5c0f\u4e8e\u65e0\u7b26\u53f7\u7acb\u5373\u6570\uff1a\u5982\u679c t2 \u5c0f\u4e8e\u4f7f\u7528\u65e0\u7b26\u53f7\u6bd4\u8f83\u8fdb\u884c\u7b26\u53f7\u6269\u5c55\u7684 16 \u4f4d\u7acb\u5373\u6570\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Set less than immediate unsigned : If t2 is less than sign-extended 16-bit immediate using unsigned comparison, then set t1 to 1 else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>sltu t1,t2,t3<\/td>\n<td>\u8bbe\u7f6e\u5c0f\u4e8e\uff1a\u5982\u679c\u4f7f\u7528\u65e0\u7b26\u53f7\u6bd4\u8f83 t2 \u5c0f\u4e8e t3\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Set less than : If t2 is less than t3 using unsigned comparision, then set t1 to 1 else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>sra t1,t2,t3<\/td>\n<td>\u53f3\u79fb\u7b97\u6cd5\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u5c06 t2 \u7b26\u53f7\u6269\u5c55\u53f3\u79fb\u7684\u7ed3\u679c\uff0c\u5176\u4f4d\u6570\u7531 t3 \u7684\u4f4e 5 \u4f4d\u4e2d\u7684\u503c\u6307\u5b9a<\/td>\n<td>Shift right arithmetic: Set t1 to result of sign-extended shifting t2 right by number of bits specified by value in low-order 5 bits of t3<\/td>\n<\/tr>\n<tr>\n<td>srai t1,t2,10<\/td>\n<td>\u53f3\u79fb\u7b97\u672f\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u5c06 t2 \u7b26\u53f7\u6269\u5c55\u53f3\u79fb\u7acb\u5373\u6570\u6307\u5b9a\u7684\u4f4d\u6570\u7684\u7ed3\u679c<\/td>\n<td>Shift right arithmetic : Set t1 to result of sign-extended shifting t2 right by number of bits specified by immediate<\/td>\n<\/tr>\n<tr>\n<td>srl t1,t2,t3<\/td>\n<td>\u53f3\u79fb\u903b\u8f91\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u5c06 t2 \u53f3\u79fb t3 \u7684\u4f4e 5 \u4f4d\u4e2d\u7684\u503c\u6307\u5b9a\u7684\u4f4d\u6570\u7684\u7ed3\u679c<\/td>\n<td>Shift right logical: Set t1 to result of shifting t2 right by number of bits specified by value in low-order 5 bits of t3<\/td>\n<\/tr>\n<tr>\n<td>srli t1,t2,10<\/td>\n<td>\u53f3\u79fb\u903b\u8f91\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u5c06 t2 \u53f3\u79fb immediate \u6307\u5b9a\u7684\u4f4d\u6570\u7684\u7ed3\u679c<\/td>\n<td>Shift right logical : Set t1 to result of shifting t2 right by number of bits specified by immediate<\/td>\n<\/tr>\n<tr>\n<td>sub t1,t2,t3<\/td>\n<td>\u51cf\u6cd5\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\uff08t2 \u51cf\u53bb t3\uff09<\/td>\n<td>Subtraction: set t1 to (t2 minus t3)<\/td>\n<\/tr>\n<tr>\n<td>sw t1, -100(t2)<\/td>\n<td>Store word\uff1a\u5c06t1\u7684\u5185\u5bb9\u5b58\u5165\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740<\/td>\n<td>Store word : Store contents of t1 into effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>uret<\/td>\n<td>\u4ece\u5904\u7406\u4e2d\u65ad\u6216\u5f02\u5e38\u8fd4\u56de\uff08\u5230 uepc\uff09<\/td>\n<td>Return from handling an interrupt or exception (to uepc)<\/td>\n<\/tr>\n<tr>\n<td>wfi<\/td>\n<td>\u7b49\u5f85\u4e2d\u65ad<\/td>\n<td>Wait for Interrupt<\/td>\n<\/tr>\n<tr>\n<td>xor t1,t2,t3<\/td>\n<td>\u6309\u4f4d\u5f02\u6216\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a t2 \u548c t3 \u7684\u6309\u4f4d\u5f02\u6216<\/td>\n<td>Bitwise XOR : Set t1 to bitwise XOR of t2 and t3<\/td>\n<\/tr>\n<tr>\n<td>xori t1,t2,-100<\/td>\n<td>\u6309\u4f4d\u5f02\u6216\u7acb\u5373\u6570\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a t2 \u548c\u7b26\u53f7\u6269\u5c55\u7684 12 \u4f4d\u7acb\u5373\u6570\u7684\u6309\u4f4d\u5f02\u6216<\/td>\n<td>Bitwise XOR immediate : Set t1 to bitwise XOR of t2 and sign-extended 12-bit immediate<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Supported psuedo-instructions (\u652f\u6301\u7684\u4f2a\u6307\u4ee4)<\/h2>\n<table>\n<thead>\n<tr>\n<th>Example Usage<\/th>\n<th>\u4e2d\u6587\u63cf\u8ff0<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>addi t1,t2,%lo(label)<\/td>\n<td>Load Lower Address : \u8bbe\u7f6e t1 \u5230 t2 + \u4f4e 12 \u4f4d\u6807\u7b7e\u5730\u5740<\/td>\n<td>Load Lower Address : Set t1 to t2 + lower 12-bit label's address<\/td>\n<\/tr>\n<tr>\n<td>b label<\/td>\n<td>Branch : \u65e0\u6761\u4ef6\u5206\u652f\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch : Branch to statement at label unconditionally<\/td>\n<\/tr>\n<tr>\n<td>beqz t1,label<\/td>\n<td>Branch if EQual Zero \uff1a\u5982\u679c t1 == 0 \u5219\u5206\u652f\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if EQual Zero : Branch to statement at label if t1 == 0<\/td>\n<\/tr>\n<tr>\n<td>bgez t1,label<\/td>\n<td>Branch if Greater than or Equal to Zero \uff1a\u5982\u679c t1 &gt;= 0\uff0c\u5219\u5206\u652f\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if Greater than or Equal to Zero : Branch to statement at label if t1 &gt;= 0<\/td>\n<\/tr>\n<tr>\n<td>bgt t1,t2,label<\/td>\n<td>Branch if Greater Than \uff1a\u5982\u679c t1 &gt; t2 \u5219\u5206\u652f\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if Greater Than : Branch to statement at label if t1 &gt; t2<\/td>\n<\/tr>\n<tr>\n<td>bgtu t1,t2,label<\/td>\n<td>Branch if Greater Than Unsigned\uff1a\u5982\u679c t1 &gt; t2\uff08\u65e0\u7b26\u53f7\u6bd4\u8f83\uff09\u5219\u5206\u652f\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if Greater Than Unsigned: Branch to statement at label if t1 &gt; t2 (unsigned compare)<\/td>\n<\/tr>\n<tr>\n<td>bgtz t1,label<\/td>\n<td>Branch if Greater Than\uff1a\u5982\u679c t1 &gt; 0\uff0c\u5219\u5206\u652f\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if Greater Than: Branch to statement at label if t1 &gt; 0<\/td>\n<\/tr>\n<tr>\n<td>ble t1,t2,label<\/td>\n<td>Branch if Less or Equal \uff1a\u5982\u679c t1 &lt;= t2 \u5219\u5206\u652f\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if Less or Equal : Branch to statement at label if t1 &lt;= t2<\/td>\n<\/tr>\n<tr>\n<td>bleu t1,t2,label<\/td>\n<td>Branch if Less or Equal Unsigned\uff1a\u5982\u679c t1 &lt;= t2\uff08\u65e0\u7b26\u53f7\u6bd4\u8f83\uff09\uff0c\u5219\u5206\u652f\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if Less or Equal Unsigned : Branch to statement at label if t1 &lt;= t2 (unsigned compare)<\/td>\n<\/tr>\n<tr>\n<td>blez t1,label<\/td>\n<td>Branch if Less than or Equal to Zero\uff1a\u5982\u679c t1 &lt;= 0\uff0c\u5219\u5206\u652f\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if Less than or Equal to Zero : Branch to statement at label if t1 &lt;= 0<\/td>\n<\/tr>\n<tr>\n<td>bltz t1,label<\/td>\n<td>\u5982\u679c\u5c0f\u4e8e\u96f6\u5219\u5206\u652f\uff1a\u5982\u679c t1 &lt; 0\uff0c\u5219\u5206\u652f\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if Less Than Zero : Branch to statement at label if t1 &lt; 0<\/td>\n<\/tr>\n<tr>\n<td>bnez t1,label<\/td>\n<td>Branch if Not Equal Zero\uff1a\u5982\u679c t1 != 0\uff0c\u5219\u5206\u652f\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Branch if Not Equal Zero : Branch to statement at label if t1 != 0<\/td>\n<\/tr>\n<tr>\n<td>call label<\/td>\n<td>CALL\uff1a\u8c03\u7528\u8fdc\u5904\u7684\u5b50\u7a0b\u5e8f<\/td>\n<td>CALL: call a far-away subroutine<\/td>\n<\/tr>\n<tr>\n<td>csrc t1, fcsr<\/td>\n<td>\u6e05\u9664\u63a7\u5236\u548c\u72b6\u6001\u5bc4\u5b58\u5668\u4e2d\u7684\u4f4d<\/td>\n<td>Clear bits in control and status register<\/td>\n<\/tr>\n<tr>\n<td>csrci fcsr, 100<\/td>\n<td>\u6e05\u9664\u63a7\u5236\u548c\u72b6\u6001\u5bc4\u5b58\u5668\u4e2d\u7684\u4f4d<\/td>\n<td>Clear bits in control and status register<\/td>\n<\/tr>\n<tr>\n<td>csrr t1, fcsr<\/td>\n<td>\u8bfb\u53d6\u63a7\u5236\u548c\u72b6\u6001\u5bc4\u5b58\u5668<\/td>\n<td>Read control and status register<\/td>\n<\/tr>\n<tr>\n<td>csrs t1, fcsr<\/td>\n<td>\u8bbe\u7f6e\u63a7\u5236\u548c\u72b6\u6001\u5bc4\u5b58\u5668\u4e2d\u7684\u4f4d<\/td>\n<td>Set bits in control and status register<\/td>\n<\/tr>\n<tr>\n<td>csrsi fcsr, 100<\/td>\n<td>\u8bbe\u7f6e\u63a7\u5236\u548c\u72b6\u6001\u5bc4\u5b58\u5668\u4e2d\u7684\u4f4d<\/td>\n<td>Set bits in control and status register<\/td>\n<\/tr>\n<tr>\n<td>csrw t1, fcsr<\/td>\n<td>\u5199\u63a7\u5236\u548c\u72b6\u6001\u5bc4\u5b58\u5668<\/td>\n<td>Write control and status register\n<\/td>\n<\/tr>\n<tr>\n<td>csrwi fcsr, 100<\/td>\n<td>\u5199\u63a7\u5236\u548c\u72b6\u6001\u5bc4\u5b58\u5668<\/td>\n<td>Write control and status register<\/td>\n<\/tr>\n<tr>\n<td>fabs.d f1, f2<\/td>\n<td>\u5c06 f1 \u8bbe\u7f6e\u4e3a f2 \u7684\u7edd\u5bf9\u503c\uff0864 \u4f4d\uff09<\/td>\n<td>Set f1 to the absolute value of f2 (64 bit)<\/td>\n<\/tr>\n<tr>\n<td>fabs.s f1, f2<\/td>\n<td>\u5c06 f1 \u8bbe\u7f6e\u4e3a f2 \u7684\u7edd\u5bf9\u503c<\/td>\n<td>Set f1 to the absolute value of f2<\/td>\n<\/tr>\n<tr>\n<td>fadd.d f1, f2, f3<\/td>\n<td>\u6d6e\u52a8 ADD\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 + f3<\/td>\n<td>Floating ADD (64 bit): assigns f1 to f2 + f3<\/td>\n<\/tr>\n<tr>\n<td>fadd.s f1, f2, f3<\/td>\n<td>\u6d6e\u52a8 ADD\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 + f3<\/td>\n<td>Floating ADD: assigns f1 to f2 + f3<\/td>\n<\/tr>\n<tr>\n<td>fcvt.d.s f1, f2<\/td>\n<td>\u5c06float\u8f6c\u4e3adouble\uff1a\u5c06f2\u7684\u503c\u8d4b\u503c\u7ed9f1<\/td>\n<td>Convert float to double: Assigned the value of f2 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.d.w f1, t1<\/td>\n<td>\u4ece\u6709\u7b26\u53f7\u6574\u6570\u8f6c\u6362\u53cc\u7cbe\u5ea6\u6570\uff1a\u5c06 t1 \u7684\u503c\u8d4b\u7ed9 f1<\/td>\n<td>Convert double from signed integer: Assigns the value of t1 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.d.wu f1, t1<\/td>\n<td>\u4ece\u65e0\u7b26\u53f7\u6574\u6570\u8f6c\u6362\u53cc\u7cbe\u5ea6\u6570\uff1a\u5c06 t1 \u7684\u503c\u8d4b\u7ed9 f1<\/td>\n<td>Convert double from unsigned integer: Assigns the value of t1 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.s.d f1, f2<\/td>\n<td>double\u8f6cfloat\uff1a\u5c06f2\u7684\u503c\u8d4b\u503c\u7ed9f1<\/td>\n<td>Convert double to float: Assigned the value of f2 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.s.w f1, t1<\/td>\n<td>\u4ece\u6709\u7b26\u53f7\u6574\u6570\u8f6c\u6362\u6d6e\u70b9\u6570\uff1a\u5c06 t1 \u7684\u503c\u8d4b\u7ed9 f1<\/td>\n<td>Convert float from signed integer: Assigns the value of t1 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.s.wu f1, t1<\/td>\n<td>\u4ece\u65e0\u7b26\u53f7\u6574\u6570\u8f6c\u6362\u6d6e\u70b9\u6570\uff1a\u5c06 t1 \u7684\u503c\u8d4b\u7ed9 f1<\/td>\n<td>Convert float from unsigned integer: Assigns the value of t1 to f1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.w.d t1, f1<\/td>\n<td>\u4ece\u53cc\u7cbe\u5ea6\u8f6c\u6362\u6709\u7b26\u53f7\u6574\u6570\uff1a\u5c06 f1 \u7684\u503c\uff08\u56db\u820d\u4e94\u5165\uff09\u5206\u914d\u7ed9 t1<\/td>\n<td>Convert signed integer from double: Assigns the value of f1 (rounded) to t1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.w.s t1, f1<\/td>\n<td>\u4ece\u6d6e\u70b9\u6570\u8f6c\u6362\u6709\u7b26\u53f7\u6574\u6570\uff1a\u5c06 f1 \u7684\u503c\uff08\u56db\u820d\u4e94\u5165\uff09\u8d4b\u503c\u7ed9 t1<\/td>\n<td>Convert signed integer from float: Assigns the value of f1 (rounded) to t1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.wu.d t1, f1<\/td>\n<td>\u4ece\u53cc\u7cbe\u5ea6\u8f6c\u6362\u65e0\u7b26\u53f7\u6574\u6570\uff1a\u5c06 f1 \u7684\u503c\uff08\u56db\u820d\u4e94\u5165\uff09\u5206\u914d\u7ed9 t1<\/td>\n<td>Convert unsigned integer from double: Assigns the value of f1 (rounded) to t1<\/td>\n<\/tr>\n<tr>\n<td>fcvt.wu.s t1, f1<\/td>\n<td>\u4ece\u6d6e\u70b9\u6570\u8f6c\u6362\u65e0\u7b26\u53f7\u6574\u6570\uff1a\u5c06 f1 \u7684\u503c\uff08\u56db\u820d\u4e94\u5165\uff09\u8d4b\u503c\u7ed9 t1<\/td>\n<td>Convert unsigned integer from float: Assigns the value of f1 (rounded) to t1<\/td>\n<\/tr>\n<tr>\n<td>fdiv.d f1, f2, f3<\/td>\n<td>\u6d6e\u52a8 DIVide\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 \/ f3<\/td>\n<td>Floating DIVide (64 bit): assigns f1 to f2 \/ f3<\/td>\n<\/tr>\n<tr>\n<td>fdiv.s f1, f2, f3<\/td>\n<td>\u6d6e\u52a8 DIVide\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 \/ f3<\/td>\n<td>Floating DIVide: assigns f1 to f2 \/ f3<\/td>\n<\/tr>\n<tr>\n<td>fge.d t1, f2, f3<\/td>\n<td>\u6d6e\u52a8\u5927\u4e8e\u6216\u7b49\u4e8e\uff0864 \u4f4d\uff09\uff1a\u5982\u679c f1 &gt;= f2\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Floating Greater Than or Equal (64 bit): if f1 &gt;= f2, set t1 to 1, else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>fge.s t1, f2, f3<\/td>\n<td>\u6d6e\u52a8\u5927\u4e8e\u6216\u7b49\u4e8e\uff1a\u5982\u679c f1 &gt;= f2\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Floating Greater Than or Equal: if f1 &gt;= f2, set t1 to 1, else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>fgt.d t1, f2, f3<\/td>\n<td>\u6d6e\u52a8\u5927\u4e8e\uff0864 \u4f4d\uff09\uff1a\u5982\u679c f1 &gt; f2\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Floating Greater Than (64 bit): if f1 &gt; f2, set t1 to 1, else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>fgt.s t1, f2, f3<\/td>\n<td>\u6d6e\u52a8\u5927\u4e8e\uff1a\u5982\u679c f1 &gt; f2\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 0<\/td>\n<td>Floating Greater Than: if f1 &gt; f2, set t1 to 1, else set t1 to 0<\/td>\n<\/tr>\n<tr>\n<td>fld f1,(t2)<\/td>\n<td>Load Word\uff1a\u5c06f1\u8bbe\u7f6e\u4e3a\u4ece\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u5f00\u59cb\u768464\u4f4d\u503c<\/td>\n<td>Load Word: Set f1 to 64-bit value from effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>fld f1,-100<\/td>\n<td>Load Word\uff1a\u5c06f1\u8bbe\u7f6e\u4e3a\u4ece\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u5f00\u59cb\u768464\u4f4d\u503c<\/td>\n<td>Load Word: Set f1 to 64-bit value from effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>fld f1,10000000,t3<\/td>\n<td>Load Word\uff1a\u4f7f\u7528 t3 \u4f5c\u4e3a\u4e34\u65f6\u5730\u5740\uff0c\u5c06 f1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u7684 64 \u4f4d\u503c<\/td>\n<td>Load Word: Set f1 to 64-bit value from effective memory word address using t3 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>fld f1,label, t3<\/td>\n<td>Load Word\uff1a\u4f7f\u7528 t3 \u4f5c\u4e3a\u4e34\u65f6\u5730\u5740\uff0c\u5c06 f1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u7684 64 \u4f4d\u503c<\/td>\n<td>Load Word: Set f1 to 64-bit value from effective memory word address using t3 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>flw f1,%lo(label)(t2)<\/td>\n<td>\u4ece\u5730\u5740\u52a0\u8f7d<\/td>\n<td>Load from Address<\/td>\n<\/tr>\n<tr>\n<td>flw f1,(t2)<\/td>\n<td>\u52a0\u8f7d\u5b57\u534f\u5904\u7406\u5668 1\uff1a\u5c06 f1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u7684 32 \u4f4d\u503c<\/td>\n<td>Load Word Coprocessor 1 : Set f1 to 32-bit value from effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>flw f1,-100<\/td>\n<td>\u52a0\u8f7d\u5b57\u534f\u5904\u7406\u5668 1\uff1a\u5c06 f1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u7684 32 \u4f4d\u503c<\/td>\n<td>Load Word Coprocessor 1 : Set f1 to 32-bit value from effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>flw f1,10000000,t3<\/td>\n<td>\u52a0\u8f7d\u5b57\u534f\u5904\u7406\u5668 1\uff1a\u4f7f\u7528 t3 \u4f5c\u4e3a\u4e34\u65f6\u5730\u5740\uff0c\u5c06 f1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u7684 32 \u4f4d\u503c<\/td>\n<td>Load Word Coprocessor 1 : Set f1 to 32-bit value from effective memory word address using t3 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>flw f1,label, t3<\/td>\n<td>\u52a0\u8f7d\u5b57\u534f\u5904\u7406\u5668 1\uff1a\u4f7f\u7528 t3 \u4f5c\u4e3a\u4e34\u65f6\u5730\u5740\uff0c\u5c06 f1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u7684 32 \u4f4d\u503c<\/td>\n<td>Load Word Coprocessor 1 : Set f1 to 32-bit value from effective memory word address using t3 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>flwd f1,%lo(label)(t2)<\/td>\n<td>\u4ece\u5730\u5740\u52a0\u8f7d<\/td>\n<td>Load from Address<\/td>\n<\/tr>\n<tr>\n<td>fmadd.d f1, f2, f3, f4<\/td>\n<td>\u878d\u5408\u4e58\u52a0\uff0864 \u4f4d\uff09\uff1a\u5c06 f2*f3+f4 \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Multiply Add (64 bit): Assigns f2*f3+f4 to f1<\/td>\n<\/tr>\n<tr>\n<td>fmadd.s f1, f2, f3, f4<\/td>\n<td>\u878d\u5408\u4e58\u52a0\uff1a\u5c06 f2*f3+f4 \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Multiply Add: Assigns f2*f3+f4 to f1<\/td>\n<\/tr>\n<tr>\n<td>fmsub.d f1, f2, f3, f4<\/td>\n<td>\u878d\u5408\u4e58\u6cd5\u51cf\u6cd5\uff0864 \u4f4d\uff09\uff1a\u5c06 f2*f3-f4 \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Multiply Subatract (64 bit): Assigns f2*f3-f4 to f1<\/td>\n<\/tr>\n<tr>\n<td>fmsub.s f1, f2, f3, f4<\/td>\n<td>\u878d\u5408\u4e58\u5b50\uff1a\u5c06 f2*f3-f4 \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Multiply Subatract: Assigns f2*f3-f4 to f1<\/td>\n<\/tr>\n<tr>\n<td>fmul.d f1, f2, f3<\/td>\n<td>Floating MULtiply\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 * f3<\/td>\n<td>Floating MULtiply (64 bit): assigns f1 to f2 * f3<\/td>\n<\/tr>\n<tr>\n<td>fmul.s f1, f2, f3<\/td>\n<td>Floating MULtiply\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 * f3<\/td>\n<td>Floating MULtiply: assigns f1 to f2 * f3<\/td>\n<\/tr>\n<tr>\n<td>fmv.d f1, f2<\/td>\n<td>\u5c06 f2 \u7684\u503c\u79fb\u52a8\u5230 f1\uff0864 \u4f4d\uff09<\/td>\n<td>Move the value of f2 to f1 (64 bit)<\/td>\n<\/tr>\n<tr>\n<td>fmv.s f1, f2<\/td>\n<td>\u5c06 f2 \u7684\u503c\u79fb\u52a8\u5230 f1<\/td>\n<td>Move the value of f2 to f1<\/td>\n<\/tr>\n<tr>\n<td>fmv.w.x t1, f1<\/td>\n<td>\u79fb\u52a8\u6d6e\u70b9\u6570\uff08\u65b0\u52a9\u8bb0\u7b26\uff09\uff1a\u4ece\u6574\u6570\u5bc4\u5b58\u5668\u4e2d\u79fb\u52a8\u8868\u793a\u6d6e\u70b9\u6570\u7684\u4f4d<\/td>\n<td>Move float (New mnemonic): move bits representing a float from an integer register<\/td>\n<\/tr>\n<tr>\n<td>fmv.x.w t1, f1<\/td>\n<td>\u79fb\u52a8\u6d6e\u70b9\u6570\uff08\u65b0\u52a9\u8bb0\u7b26\uff09\uff1a\u5c06\u8868\u793a\u6d6e\u70b9\u6570\u7684\u4f4d\u79fb\u52a8\u5230\u6574\u6570\u5bc4\u5b58\u5668<\/td>\n<td>Move float (New mnemonic): move bits representing a float to an integer register<\/td>\n<\/tr>\n<tr>\n<td>fneg.d f1, f2<\/td>\n<td>\u5c06 f1 \u8bbe\u7f6e\u4e3a f2 \u7684\u5426\u5b9a\uff0864 \u4f4d\uff09<\/td>\n<td>Set f1 to the negation of f2 (64 bit)<\/td>\n<\/tr>\n<tr>\n<td>fneg.s f1, f2<\/td>\n<td>\u5c06 f1 \u8bbe\u7f6e\u4e3a f2 \u7684\u5426\u5b9a<\/td>\n<td>Set f1 to the negation of f2<\/td>\n<\/tr>\n<tr>\n<td>fnmadd.d f1, f2, f3, f4<\/td>\n<td>Fused Negate Multiply Add\uff0864 \u4f4d\uff09\uff1a\u5c06 -(f2*f3+f4) \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Negate Multiply Add (64 bit): Assigns -(f2*f3+f4) to f1<\/td>\n<\/tr>\n<tr>\n<td>fnmadd.s f1, f2, f3, f4<\/td>\n<td>Fused Negate Multiply Add\uff1a\u5c06 -(f2*f3+f4) \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Negate Multiply Add: Assigns -(f2*f3+f4) to f1<\/td>\n<\/tr>\n<tr>\n<td>fnmsub.d f1, f2, f3, f4<\/td>\n<td>\u878d\u5408\u53d6\u53cd\u4e58\u6cd5\u51cf\u6cd5\uff0864 \u4f4d\uff09\uff1a\u5c06 -(f2*f3-f4) \u5206\u914d\u7ed9 f1<\/td>\n<td>Fused Negated Multiply Subatract (64 bit): Assigns -(f2*f3-f4) to f1<\/td>\n<\/tr>\n<tr>\n<td>fnmsub.s f1, f2, f3, f4<\/td>\n<td>\u878d\u5408\u53d6\u53cd\u4e58\u6cd5\u51cf\u6cd5\uff1a\u5c06 -(f2*f3-f4) \u8d4b\u503c\u7ed9 f1<\/td>\n<td>Fused Negated Multiply Subatract: Assigns -(f2*f3-f4) to f1<\/td>\n<\/tr>\n<tr>\n<td>frcsr t1<\/td>\n<td>\u8bfb\u53d6 FP \u63a7\u5236\/\u72b6\u6001\u5bc4\u5b58\u5668<\/td>\n<td\n>Read FP control\/status register<\/td>\n<\/tr>\n<tr>\n<td>frflags t1<\/td>\n<td>\u8bfb\u53d6 FP \u5f02\u5e38\u6807\u5fd7<\/td>\n<td>Read FP exception flags<\/td>\n<\/tr>\n<tr>\n<td>frrm t1<\/td>\n<td>\u8bfb\u53d6 FP \u820d\u5165\u6a21\u5f0f<\/td>\n<td>Read FP rounding mode<\/td>\n<\/tr>\n<tr>\n<td>frsr t1<\/td>\n<td>frcsr t1 \u7684\u522b\u540d<\/td>\n<td>Alias for frcsr t1<\/td>\n<\/tr>\n<tr>\n<td>fscsr t1<\/td>\n<td>\u5199 FP \u63a7\u5236\/\u72b6\u6001\u5bc4\u5b58\u5668<\/td>\n<td>Write FP control\/status register<\/td>\n<\/tr>\n<tr>\n<td>fscsr t1, t2<\/td>\n<td>\u4ea4\u6362 FP \u63a7\u5236\/\u72b6\u6001\u5bc4\u5b58\u5668<\/td>\n<td>Swap FP control\/status register<\/td>\n<\/tr>\n<tr>\n<td>fsd f1,(t2)<\/td>\n<td>Store Word\uff1a\u5c06f1\u4e2d\u768464\u4f4d\u503c\u5b58\u50a8\u5230\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740<\/td>\n<td>Store Word: Store 64-bit value from f1 to effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>fsd f1,-100<\/td>\n<td>Store Word\uff1a\u5c06f1\u4e2d\u768464\u4f4d\u503c\u5b58\u50a8\u5230\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740<\/td>\n<td>Store Word: Store 64-bit value from f1 to effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>fsd f1,10000000,t3<\/td>\n<td>Store Word\uff1a\u5c0664\u4f4d\u503c\u4ecef1\u5b58\u50a8\u5230\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\uff0c\u4f7f\u7528t3\u4f5c\u4e3a\u4e34\u65f6\u5730\u5740<\/td>\n<td>Store Word: Store 64-bit value from f1 to effective memory word address using t3 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>fsd f1,label, t3<\/td>\n<td>Store Word\uff1a\u5c0664\u4f4d\u503c\u4ecef1\u5b58\u50a8\u5230\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\uff0c\u4f7f\u7528t3\u4f5c\u4e3a\u4e34\u65f6\u5730\u5740<\/td>\n<td>Store Word: Store 64-bit value from f1 to effective memory word address using t3 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>fsflags t1<\/td>\n<td>\u5199\u5165 FP \u5f02\u5e38\u6807\u5fd7<\/td>\n<td>Write FP exception flags<\/td>\n<\/tr>\n<tr>\n<td>fsflags t1, t2<\/td>\n<td>\u4ea4\u6362 FP \u5f02\u5e38\u6807\u5fd7<\/td>\n<td>Swap FP exception flags<\/td>\n<\/tr>\n<tr>\n<td>fsflagsi 100<\/td>\n<td>\u7acb\u5373\u5199\u5165 FP \u5f02\u5e38\u6807\u5fd7<\/td>\n<td>Write FP exception flags, immediate<\/td>\n<\/tr>\n<tr>\n<td>fsflagsi t1, 100<\/td>\n<td>\u7acb\u5373\u4ea4\u6362 FP \u5f02\u5e38\u6807\u5fd7<\/td>\n<td>Swap FP exception flags, immediate<\/td>\n<\/tr>\n<tr>\n<td>fsqrt.d f1, f2<\/td>\n<td>\u6d6e\u52a8\u5e73\u65b9\u6839\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 \u7684\u5e73\u65b9\u6839<\/td>\n<td>Floating SQuare RooT (64 bit): Assigns f1 to the square root of f2<\/td>\n<\/tr>\n<tr>\n<td>fsqrt.s f1, f2<\/td>\n<td>\u6d6e\u52a8\u5e73\u65b9\u6839\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 \u7684\u5e73\u65b9\u6839<\/td>\n<td>Floating SQuare RooT: Assigns f1 to the square root of f2<\/td>\n<\/tr>\n<tr>\n<td>fsrm t1<\/td>\n<td>\u5199\u5165 FP \u820d\u5165\u6a21\u5f0f<\/td>\n<td>Write FP rounding mode<\/td>\n<\/tr>\n<tr>\n<td>fsrm t1, t2<\/td>\n<td>\u4ea4\u6362 FP \u820d\u5165\u6a21\u5f0f<\/td>\n<td>Swap FP rounding mode<\/td>\n<\/tr>\n<tr>\n<td>fsrmi 100<\/td>\n<td>\u5199\u5165 FP \u820d\u5165\u6a21\u5f0f\uff0c\u7acb\u5373\u6570<\/td>\n<td>Write FP rounding mode, immediate<\/td>\n<\/tr>\n<tr>\n<td>fsrmi t1, 100<\/td>\n<td>\u4ea4\u6362 FP \u820d\u5165\u6a21\u5f0f\uff0c\u7acb\u5373\u6570<\/td>\n<td>Swap FP rounding mode, immediate<\/td>\n<\/tr>\n<tr>\n<td>fssr t1<\/td>\n<td>fscsr t1 \u7684\u522b\u540d<\/td>\n<td>Alias for fscsr t1<\/td>\n<\/tr>\n<tr>\n<td>fssr t1, t2<\/td>\n<td>fscsr t1\u3001t2 \u7684\u522b\u540d<\/td>\n<td>Alias for fscsr t1, t2<\/td>\n<\/tr>\n<tr>\n<td>fsub.d f1, f2, f3<\/td>\n<td>\u6d6e\u52a8\u51cf\u6cd5\uff0864 \u4f4d\uff09\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 - f3<\/td>\n<td>Floating SUBtract (64 bit): assigns f1 to f2 - f3<\/td>\n<\/tr>\n<tr>\n<td>fsub.s f1, f2, f3<\/td>\n<td>\u6d6e\u52a8\u51cf\u6cd5\uff1a\u5c06 f1 \u5206\u914d\u7ed9 f2 - f3<\/td>\n<td>Floating SUBtract: assigns f1 to f2 - f3<\/td>\n<\/tr>\n<tr>\n<td>fsw f1,(t2)<\/td>\n<td>Store Word Coprocessor 1 : \u5c06 f1 \u7684 32 \u4f4d\u503c\u5b58\u50a8\u5230\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740<\/td>\n<td>Store Word Coprocessor 1 : Store 32-bit value from f1 to effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>fsw f1,-100<\/td>\n<td>Store Word Coprocessor 1 : \u5c06 f1 \u7684 32 \u4f4d\u503c\u5b58\u50a8\u5230\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740<\/td>\n<td>Store Word Coprocessor 1 : Store 32-bit value from f1 to effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>fsw f1,10000000,t3<\/td>\n<td>\u5b58\u50a8\u5b57\u534f\u5904\u7406\u5668 1\uff1a\u5c06 f1 \u7684 32 \u4f4d\u503c\u5b58\u50a8\u5230\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\uff0c\u4f7f\u7528 t3 \u4f5c\u4e3a\u4e34\u65f6\u5730\u5740<\/td>\n<td>Store Word Coprocessor 1 : Store 32-bit value from f1 to effective memory word address using t3 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>fsw f1,label, t3<\/td>\n<td>\u5b58\u50a8\u5b57\u534f\u5904\u7406\u5668 1\uff1a\u5c06 f1 \u7684 32 \u4f4d\u503c\u5b58\u50a8\u5230\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\uff0c\u4f7f\u7528 t3 \u4f5c\u4e3a\u4e34\u65f6\u5730\u5740<\/td>\n<td>Store Word Coprocessor 1 : Store 32-bit value from f1 to effective memory word address using t3 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>j label<\/td>\n<td>\u8df3\u8f6c\uff1a\u8df3\u8f6c\u5230\u6807\u7b7e\u5904\u7684\u8bed\u53e5<\/td>\n<td>Jump : Jump to statement at label<\/td>\n<\/tr>\n<tr>\n<td>jal label<\/td>\n<td>Jump And Link\uff1a\u8df3\u8f6c\u5230\u6807\u53f7\u5904\u7684\u8bed\u53e5\u5e76\u5c06\u8fd4\u56de\u5730\u5740\u8bbe\u7f6e\u4e3ara<\/td>\n<td>Jump And Link: Jump to statement at label and set the return address to ra<\/td>\n<\/tr>\n<tr>\n<td>jalr t0<\/td>\n<td>Jump And Link Register\uff1a\u8df3\u8f6c\u5230t0\u4e2d\u7684\u5730\u5740\u5e76\u5c06\u8fd4\u56de\u5730\u5740\u8bbe\u7f6e\u4e3ara<\/td>\n<td>Jump And Link Register: Jump to address in t0 and set the return address to ra<\/td>\n<\/tr>\n<tr>\n<td>jalr t0, -100<\/td>\n<td>Jump And Link Register\uff1a\u8df3\u8f6c\u5230t0\u4e2d\u7684\u5730\u5740\u5e76\u5c06\u8fd4\u56de\u5730\u5740\u8bbe\u7f6e\u4e3ara<\/td>\n<td>Jump And Link Register: Jump to address in t0 and set the return address to ra<\/td>\n<\/tr>\n<tr>\n<td>jr t0<\/td>\n<td>\u8df3\u8f6c\u5bc4\u5b58\u5668\uff1a\u8df3\u8f6c\u5230 t0 \u4e2d\u7684\u5730\u5740<\/td>\n<td>Jump Register: Jump to address in t0<\/td>\n<\/tr>\n<tr>\n<td>jr t0, -100<\/td>\n<td>\u8df3\u8f6c\u5bc4\u5b58\u5668\uff1a\u8df3\u8f6c\u5230 t0 \u4e2d\u7684\u5730\u5740<\/td>\n<td>Jump Register: Jump to address in t0<\/td>\n<\/tr>\n<tr>\n<td>la t1,label<\/td>\n<td>\u52a0\u8f7d\u5730\u5740\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6807\u7b7e\u7684\u5730\u5740<\/td>\n<td>Load Address : Set t1 to label's address<\/td>\n<\/tr>\n<tr>\n<td>lb t1,(t2)<\/td>\n<td>\u52a0\u8f7d\u5b57\u8282\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740\u7684\u7b26\u53f7\u6269\u5c55 8 \u4f4d\u503c<\/td>\n<td>Load Byte : Set t1 to sign-extended 8-bit value from effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>lb t1,-100<\/td>\n<td>\u52a0\u8f7d\u5b57\u8282\uff1a\u5c06 $1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740\u7684\u7b26\u53f7\u6269\u5c55 8 \u4f4d\u503c<\/td>\n<td>Load Byte : Set $1 to sign-extended 8-bit value from effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>lb t1,10000000<\/td>\n<td>\u52a0\u8f7d\u5b57\u8282\uff1a\u5c06 $t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740\u7684\u7b26\u53f7\u6269\u5c55 8 \u4f4d\u503c<\/td>\n<td>Load Byte : Set $t1 to sign-extended 8-bit value from effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>lb t1,label<\/td>\n<td>\u52a0\u8f7d\u5b57\u8282\uff1a\u5c06 $t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740\u7684\u7b26\u53f7\u6269\u5c55 8 \u4f4d\u503c<\/td>\n<td>Load Byte : Set $t1 to sign-extended 8-bit value from effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>lbu t1,(t2)<\/td>\n<td>\u52a0\u8f7d\u65e0\u7b26\u53f7\u5b57\u8282\uff1a\u5c06 $t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740\u7684\u96f6\u6269\u5c55 8 \u4f4d\u503c<\/td>\n<td>Load Byte Unsigned : Set $t1 to zero-extended 8-bit value from effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>lbu t1,-100<\/td>\n<td>\u52a0\u8f7d\u65e0\u7b26\u53f7\u5b57\u8282\uff1a\u5c06 $t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740\u7684\u96f6\u6269\u5c55 8 \u4f4d\u503c<\/td>\n<td>Load Byte Unsigned : Set $t1 to zero-extended 8-bit value from effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>lbu t1,10000000<\/td>\n<td>Load Byte Unsigned\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740\u7684\u96f6\u6269\u5c55 8 \u4f4d\u503c<\/td>\n<td>Load Byte Unsigned : Set t1 to zero-extended 8-bit value from effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>lbu t1,label<\/td>\n<td>Load Byte Unsigned\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740\u7684\u96f6\u6269\u5c55 8 \u4f4d\u503c<\/td>\n<td>Load Byte Unsigned : Set t1 to zero-extended 8-bit value from effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>lh t1,(t2)<\/td>\n<td>\u52a0\u8f7d\u534a\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740\u7684\u7b26\u53f7\u6269\u5c55 16 \u4f4d\u503c<\/td>\n<td>Load Halfword : Set t1 to sign-extended 16-bit value from effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>lh t1,-100<\/td>\n<td>\u52a0\u8f7d\u534a\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740\u7684\u7b26\u53f7\u6269\u5c55 16 \u4f4d\u503c<\/td>\n<td>Load Halfword : Set t1 to sign-extended 16-bit value from effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>lh t1,10000000<\/td>\n<td>\u52a0\u8f7d\u534a\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740\u7684\u7b26\u53f7\u6269\u5c55 16 \u4f4d\u503c<\/td>\n<td>Load Halfword : Set t1 to sign-extended 16-bit value from effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>lh t1,label<\/td>\n<td>\u52a0\u8f7d\u534a\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740\u7684\u7b26\u53f7\u6269\u5c55 16 \u4f4d\u503c<\/td>\n<td>Load Halfword : Set t1 to sign-extended 16-bit value from effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>lhu t1,(t2)<\/td>\n<td>\u52a0\u8f7d\u65e0\u7b26\u53f7\u534a\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740\u7684\u96f6\u6269\u5c55 16 \u4f4d\u503c<\/td>\n<td>Load Halfword Unsigned : Set t1 to zero-extended 16-bit value from effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>lhu t1,-100<\/td>\n<td>\u52a0\u8f7d\u65e0\u7b26\u53f7\u534a\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740\u7684\u96f6\u6269\u5c55 16 \u4f4d\u503c<\/td>\n<td>Load Halfword Unsigned : Set t1 to zero-extended 16-bit value from effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>lhu t1,10000000<\/td>\n<td>\u52a0\u8f7d\u65e0\u7b26\u53f7\u534a\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740\u7684\u96f6\u6269\u5c55 16 \u4f4d\u503c<\/td>\n<td>Load Halfword Unsigned : Set t1 to zero-extended 16-bit value from effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>lhu t1,label<\/td>\n<td>\u52a0\u8f7d\u65e0\u7b26\u53f7\u534a\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740\u7684\u96f6\u6269\u5c55 16 \u4f4d\u503c<\/td>\n<td>Load Halfword Unsigned : Set t1 to zero-extended 16-bit value from effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>li t1,-100<\/td>\n<td>\u7acb\u5373\u52a0\u8f7d\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a 12 \u4f4d\u7acb\u5373\u6570\uff08\u7b26\u53f7\u6269\u5c55\uff09<\/td>\n<td>Load Immediate : Set t1 to 12-bit immediate (sign-extended)<\/td>\n<\/tr>\n<tr>\n<td>li t1,10000000<\/td>\n<td>\u7acb\u5373\u52a0\u8f7d\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a 32 \u4f4d\u7acb\u5373\u6570<\/td>\n<td>Load Immediate : Set t1 to 32-bit immediate<\/td>\n<\/tr>\n<tr>\n<td>lui t1,%hi(label)<\/td>\n<td>Load Upper Address : \u5c06 t1 \u8bbe\u7f6e\u4e3a\u6807\u7b7e\u7684\u9ad8 20 \u4f4d\u5730\u5740<\/td>\n<td>Load Upper Address : Set t1 to upper 20-bit label's address<\/td>\n<\/tr>\n<tr>\n<td>lw t1,%lo(label)(t2)<\/td>\n<td>\u4ece\u5730\u5740\u52a0\u8f7d<\/td>\n<td>Load from Address<\/td>\n<\/tr>\n<tr>\n<td>lw t1,(t2)<\/td>\n<td>\u52a0\u8f7d\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u7684\u5185\u5bb9<\/td>\n<td>Load Word : Set t1 to contents of effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>lw t1,-100<\/td>\n<td>\u52a0\u8f7d\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u7684\u5185\u5bb9<\/td>\n<td>Load Word : Set t1 to contents of effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>lw t1,10000000<\/td>\n<td>\u52a0\u8f7d\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740\u7684\u5185\u5bb9<\/td>\n<td>Load Word : Set t1 to contents of effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>lw t1,label<\/td>\n<td>\u52a0\u8f7d\u5b57\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a\u6807\u7b7e\u5730\u5740\u5904\u5185\u5b58\u5b57\u7684\u5185\u5bb9<\/td>\n<td>Load Word : Set t1 to contents of memory word at label's address<\/td>\n<\/tr>\n<tr>\n<td>mv t1,t2<\/td>\n<td>MoVe\uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a t2 \u7684\u5185\u5bb9<\/td>\n<td>MoVe : Set t1 to contents of t2<\/td>\n<\/tr>\n<tr>\n<td>neg t1,t2<\/td>\n<td>NEGate \uff1a\u5c06 t1 \u8bbe\u7f6e\u4e3a t2 \u7684\u5426\u5b9a<\/td>\n<td>NEGate : Set t1 to negation of t2<\/td>\n<\/tr>\n<tr>\n<td>nop<\/td>\n<td>\u65e0\u64cd\u4f5c<\/td>\n<td>NO OPeration<\/td>\n<\/tr>\n<tr>\n<td>not t1,t2<\/td>\n<td>\u6309\u4f4d\u975e\uff08\u4f4d\u53cd\u8f6c\uff09<\/td>\n<td>Bitwise NOT (bit inversion)<\/td>\n<\/tr>\n<tr>\n<td>rdcycle t1<\/td>\n<td>\u4ece\u5faa\u73af\u4e2d\u8bfb\u53d6<\/td>\n<td>Read from cycle<\/td>\n<\/tr>\n<tr>\n<td>rdcycleh t1<\/td>\n<td>\u4ece cycleh \u8bfb\u53d6<\/td>\n<td>Read from cycleh<\/td>\n<\/tr>\n<tr>\n<td>rdinstret t1<\/td>\n<td>\u4eceinstret\u8bfb\u53d6<\/td>\n<td>Read from instret<\/td>\n<\/tr>\n<tr>\n<td>rdinstreth t1<\/td>\n<td>\u4ece instreth \u8bfb\u53d6<\/td>\n<td>Read from instreth<\/td>\n<\/tr>\n<tr>\n<td>rdtime t1<\/td>\n<td>\u4ece\u65f6\u95f4\u8bfb<\/td>\n<td>Read from time<\/td>\n<\/tr>\n<tr>\n<td>rdtimeh t1<\/td>\n<td>\u4ece\u65f6\u95f4\u8bfb\u53d6<\/td>\n<td>Read from timeh<\/td>\n<\/tr>\n<tr>\n<td>ret<\/td>\n<td>\u8fd4\u56de\uff1a\u4ece\u5b50\u7a0b\u5e8f\u8fd4\u56de<\/td>\n<td>Return: return from a subroutine<\/td>\n<\/tr>\n<tr>\n<td>sb t1,(t2)<\/td>\n<td>Store Byte : \u5c06t1\u7684\u4f4e8\u4f4d\u5b58\u5165\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740<\/td>\n<td>Store Byte : Store the low-order 8 bits of t1 into the effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>sb t1,-100<\/td>\n<td>Store Byte : \u5c06$t1\u7684\u4f4e8\u4f4d\u5b58\u5165\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740<\/td>\n<td>Store Byte : Store the low-order 8 bits of $t1 into the effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>sb t1,10000000,t2<\/td>\n<td>Store Byte : \u5c06$t1\u7684\u4f4e8\u4f4d\u5b58\u5165\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740<\/td>\n<td>Store Byte : Store the low-order 8 bits of $t1 into the effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>sb t1,label,t2<\/td>\n<td>Store Byte : \u5c06$t1\u7684\u4f4e8\u4f4d\u5b58\u5165\u6709\u6548\u5185\u5b58\u5b57\u8282\u5730\u5740<\/td>\n<td>Store Byte : Store the low-order 8 bits of $t1 into the effective memory byte address<\/td>\n<\/tr>\n<tr>\n<td>seqz t1,t2<\/td>\n<td>\u5c06 EQual \u8bbe\u7f6e\u4e3a\u96f6\uff1a\u5982\u679c t2 == 0\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u4e3a 0<\/td>\n<td>Set EQual to Zero : if t2 == 0 then set t1 to 1 else 0<\/td>\n<\/tr>\n<tr>\n<td>sgt t1,t2,t3<\/td>\n<td>\u8bbe\u7f6e\u5927\u4e8e\uff1a\u5982\u679c t2 \u5927\u4e8e t3\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u4e3a 0<\/td>\n<td>Set Greater Than : if t2 greater than t3 then set t1 to 1 else 0<\/td>\n<\/tr>\n<tr>\n<td>sgtu t1,t2,t3<\/td>\n<td>\u8bbe\u7f6e\u5927\u4e8e\u65e0\u7b26\u53f7\uff1a\u5982\u679c t2 \u5927\u4e8e t3\uff08\u65e0\u7b26\u53f7\u6bd4\u8f83\uff09\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u4e3a 0<\/td>\n<td>Set Greater Than Unsigned : if t2 greater than t3 (unsigned compare) then set t1 to 1 else 0<\/td>\n<\/tr>\n<tr>\n<td>sgtz t1,t2<\/td>\n<td>\u8bbe\u7f6e\u5927\u4e8e\u96f6\uff1a\u5982\u679c t2 &gt; 0\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u4e3a 0<\/td>\n<td>Set Greater Than Zero : if t2 &gt; 0 then set t1 to 1 else 0<\/td>\n<\/tr>\n<tr>\n<td>sh t1,(t2)<\/td>\n<td>Store Halfword : \u5c06$1\u7684\u4f4e16\u4f4d\u5b58\u5165\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740<\/td>\n<td>Store Halfword : Store the low-order 16 bits of $1 into the effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>sh t1,-100<\/td>\n<td>Store Halfword : \u5c06$t1\u7684\u4f4e16\u4f4d\u5b58\u5165\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740<\/td>\n<td>Store Halfword : Store the low-order 16 bits of $t1 into the effective memory halfword address<\/td>\n<\/tr>\n<tr>\n<td>sh t1,10000000,t2<\/td>\n<td>Store Halfword : \u5c06t1\u7684\u4f4e16\u4f4d\u4ee5t2\u4e3a\u4e34\u65f6\u5b58\u50a8\u5230\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740<\/td>\n<td>Store Halfword : Store the low-order 16 bits of t1 into the effective memory halfword address using t2 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>sh t1,label,t2<\/td>\n<td>Store Halfword : \u5c06t1\u7684\u4f4e16\u4f4d\u4ee5t2\u4e3a\u4e34\u65f6\u5b58\u50a8\u5230\u6709\u6548\u5185\u5b58\u534a\u5b57\u5730\u5740<\/td>\n<td>Store Halfword : Store the low-order 16 bits of t1 into the effective memory halfword address using t2 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>sltz t1,t2<\/td>\n<td>\u8bbe\u7f6e\u5c0f\u4e8e\u96f6\uff1a\u5982\u679c t2 &lt; 0\uff0c\u5219\u5c06 t1 \u8bbe\u7f6e\u4e3a 1\uff0c\u5426\u5219\u4e3a 0<\/td>\n<td>Set Less Than Zero : if t2 &lt; 0 then set t1 to 1 else 0<\/td>\n<\/tr>\n<tr>\n<td>snez t1,t2<\/td>\n<td>\u8bbe\u7f6e\u4e0d\u7b49\u4e8e\u96f6\uff1aif t2 != 0 then set t1 to 1 else 0<\/td>\n<td>Set Not Equal to Zero : if t2 != 0 then set t1 to 1 else 0<\/td>\n<\/tr>\n<tr>\n<td>sw t1,(t2)<\/td>\n<td>Store Word : \u5c06 t1 \u7684\u5185\u5bb9\u5b58\u5165\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740<\/td>\n<td>Store Word : Store t1 contents into effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>sw t1,-100<\/td>\n<td>Store Word : \u5c06$t1\u5185\u5bb9\u5b58\u5165\u6709\u6548\u5185\u5b58\u5b57\u5730\u5740<\/td>\n<td>Store Word : Store $t1 contents into effective memory word address<\/td>\n<\/tr>\n<tr>\n<td>sw t1,10000000,t2<\/td>\n<td>Store Word\uff1a\u5c06$t1\u7684\u5185\u5bb9\u5b58\u50a8\u5230\u6709\u6548\u7684\u5185\u5b58\u5b57\u5730\u5740\u4e2d\uff0c\u4f7f\u7528t2\u4f5c\u4e3a\u4e34\u65f6\u5730\u5740<\/td>\n<td>Store Word : Store $t1 contents into effective memory word address using t2 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>sw t1,label,t2<\/td>\n<td>Store Word\uff1a\u5c06$t1 \u7684\u5185\u5bb9\u5b58\u50a8\u5230\u6807\u7b7e\u5730\u5740\u5904\u7684\u5185\u5b58\u5b57\u4e2d\uff0c\u4f7f\u7528t2 \u4f5c\u4e3a\u4e34\u65f6\u5730\u5740<\/td>\n<td>Store Word : Store $t1 contents into memory word at label's address using t2 as a temporary<\/td>\n<\/tr>\n<tr>\n<td>tail label<\/td>\n<td>TAIL call\uff1a\u5c3e\u8c03\u7528\uff08call without saved return address\uff09a far-away subroutine<\/td>\n<td>TAIL call: tail call (call without saving return address)a far-away subroutine<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Supported Instructions (\u652f\u6301\u7684\u6307\u4ee4) Example Usage \u4e2d\u6587\u63cf\u8ff0  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[72],"class_list":["post-1257","post","type-post","status-publish","format-standard","hentry","category-learn","tag-riscv"],"_links":{"self":[{"href":"https:\/\/lyvba.com\/index.php\/wp-json\/wp\/v2\/posts\/1257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lyvba.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lyvba.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lyvba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lyvba.com\/index.php\/wp-json\/wp\/v2\/comments?post=1257"}],"version-history":[{"count":0,"href":"https:\/\/lyvba.com\/index.php\/wp-json\/wp\/v2\/posts\/1257\/revisions"}],"wp:attachment":[{"href":"https:\/\/lyvba.com\/index.php\/wp-json\/wp\/v2\/media?parent=1257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lyvba.com\/index.php\/wp-json\/wp\/v2\/categories?post=1257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lyvba.com\/index.php\/wp-json\/wp\/v2\/tags?post=1257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}