如果指令是 1rxy ,如何将 0x04 的值放入寄存器 4 ?1RXY-用内存地址XY处的值加载寄存器R
#include <stdio.h>
unsigned char r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,ra,rb,rc,rd,re,rf;
void reg_check(unsigned char reg);
void rxy1(unsigned char reg, unsigned char val);
int main(){
unsigned char memloc1=0x14;
unisgned char memloc2=0x04;
unsigned char temp,reg,val_add;
temp=(x && 0xFF00) >> 8;
if (temp = 0xB){
reg=(memloc1 &0x0F);
val_add=memloc2;
rxy1(reg,val_add);
}
return 0;
}
void reg_check(unsigned char reg){
}
void rxy1(unsigned char reg, unsigned char val){
实际指令是 0x1404,它分为两个字节,memloc1 和 memloc2。根据 1rxy 的格式,这意味着将值“放在”内存位置 xy 到寄存器 r 中。
所以这里的寄存器 4 或者unsigned char r4
必须将值保存在内存位置 0x04 中,该位置将保存一些其他数字。
我的问题是如何通过确定 1"4"04 中的 "r" 或 1"r"xy 并将保存在 xy 位置的值放入 unsigned char 变量中来测试寄存器变量r4
例如,如果内存位置0x04
被持有0xFB
。
我希望这是有道理的。
[编辑] 示例
#include <stdio.h>
int main(){
unsigned char r0,r2,r3,r4;
unsigned char mem1=0x14; //at lmemory address 00
unsigned char mem2=0x04; //at lmemory address 01
unsigned char reg_val_store=mem1 & 0x0F;
if( ((mem1= & 0xF0) >> 4) == 0x1){
if (reg_val_store == 0x4){
//then put value store at memory address "04" into register 4.
//and just say for example "0xFD" was at memory location "04"
//since register value is 4 from the instruction read in 0x1"4"04
//i want to put 0xFD in the r4 unsigned char variable, how do i do this?
r4=0xFD; // this is of course correct but the instruction read in changes and
// so does the register variable. how do i modify my code for this change?
}
}
return 0;
}