Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 指令描述的伪代码_C++_C - Fatal编程技术网

C++ 指令描述的伪代码

C++ 指令描述的伪代码,c++,c,C++,C,我只是在尝试用类似C的伪代码来描述两条简单指令的最佳和最短的方法。提取指令定义如下: extract rd, rs, imm 此指令从32位源寄存器rs和rs中提取适当的字节 右对齐在目标寄存器中。字节由imm指定,因此 可以取0(最低有效字节)和3(最高有效字节) rd=0x0;//零扩展结果,即确保结果中的位31至8设置为零 rd=(rs&&(0xff>imm;//这将提取适当的字节并将其存储在rd中 insert指令可视为反向操作,它从源寄存器rs获取右对齐字节,并将其存放在源寄存器r

我只是在尝试用类似C的伪代码来描述两条简单指令的最佳和最短的方法。提取指令定义如下:

extract rd, rs, imm
此指令从32位源寄存器rs和rs中提取适当的字节 右对齐在目标寄存器中。字节由imm指定,因此 可以取0(最低有效字节)和3(最高有效字节)

rd=0x0;//零扩展结果,即确保结果中的位31至8设置为零
rd=(rs&&(0xff>imm;//这将提取适当的字节并将其存储在rd中
insert指令可视为反向操作,它从源寄存器rs获取右对齐字节,并将其存放在源寄存器rs的相应字节中 目标寄存器rd;同样,该字节由imm的值确定

tmp = 0x0 XOR (rs << imm)) // shift the byte to the appropriate byte determined by imm
rd = (rd && (0x00 << imm)) // set appropriate byte to zero in rd
rd = rd XOR tmp            // XOR the byte into the destination register
tmp=0x0异或(rsExtract:

rd = (rs >> (imm * 8)) & 0xff
插入:

rd = (rd & ~(0xff << (imm * 8))) | ((rs & 0xff) << (imm * 8))  
rd=(rd&~(0xff提取:

rd = (rs >> (imm * 8)) & 0xff
插入:

rd = (rd & ~(0xff << (imm * 8))) | ((rs & 0xff) << (imm * 8))  

rd=(rd&~(0xff首先,我认为您指的是“&”(位运算符AND)而不是“&&”(逻辑AND)。C中的异或位运算符是“^”

rd = 0x0;
rd = (rs & (0xff << imm)) >> imm;

tmp = 0x0 ^ (rs << imm));
rd = (rd & (0x00 << imm));
rd = rd ^ tmp;
第二部分:

rd = (~(0xFF << (imm * 8)) & rd) | ((rs & 0xFF) << (imm * 8));

rd=(~(0xFF首先,我认为您指的是“&”(位运算符AND)而不是“&&”(逻辑AND)。C中的异或按位运算符是“^”

rd = 0x0;
rd = (rs & (0xff << imm)) >> imm;

tmp = 0x0 ^ (rs << imm));
rd = (rd & (0x00 << imm));
rd = rd ^ tmp;
第二部分:

rd = (~(0xFF << (imm * 8)) & rd) | ((rs & 0xFF) << (imm * 8));

rd=(~(0xFF谢谢,我不知道为什么我会让生活变得更艰难:我想插入行中的第一个
rs
应该是
rd
+1:我用像你一样的公式回答,但我错了,因为我忘了*8。还有保护面具……归功于你;)谢谢,我不知道为什么我会让生活变得更艰难:我认为插入行中的第一个
rs
应该是
rd
+1:我用像你一样的公式回答,但我错了,因为我忘了*8。还有保护面具…感谢你;)对不起,但是“C类伪代码”是一种矛盾修饰法。伪代码的全部原因是通过使用散文和/或数学符号来描述操作,而不是形式语法,从而从计算机中抽象出来。对不起,但是“类似C的伪代码”伪代码的全部原因是通过使用散文和/或数学符号来描述操作,而不是形式语法,从而从计算机中抽象出来。