ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## ASSIGN 赋值语句 ![](https://img.kancloud.cn/66/f3/66f39ec2bec638e5ec00cc0e394beccd_800x406.png) 通过 `var a = 3 * 4` 与 `var b = a + 1` - 生成一个符号表,存放变量,offset标识索引 - 再生成一个静态符号表,存放数值 汇编说明 ``` #var a = 3*4 LW S0 STATIC 0 // 从静态符号表获取 Offset=0,赋值给 s0, // LW标识从内存中读取给寄存器 LW S1 STATIC 1 // 从静态符号表获取 Offset=1,赋值给 s1 MULT S0 S1 // MULT 标识 S0 与 S1 相乘 // 如果两个32位相乘,会产生64位(一个低位,和一个高位),所以需要存放到两个寄存器中,地位存入 L0,高位存入xxx MFLO S2 // MFLO 把LO的存入S2, 既计算结果S2 SW S2 SP 0 // SW 把值存入内存, 把S2的值存入内存中, // SP(寄存器)的第0个位置指总是指向栈指针的当前活动记录表 # var b= a LW S0 SP 0 // 在把 a 的值赋值给 S0 LW S1 STATIC 2 ADD S2 S0 S1 SW S2 SP 1 ```