diff --git a/sections/cper-section-arm.c b/sections/cper-section-arm.c
index da5d533..f16fe0a 100644
--- a/sections/cper-section-arm.c
+++ b/sections/cper-section-arm.c
@@ -322,11 +322,11 @@
 {
     json_object* register_array = json_object_new_object();
     json_object* mrs_encoding = json_object_new_object();
-    json_object_object_add(mrs_encoding, "op2", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "crm", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "crn", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "op1", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "o0", json_object_new_int(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "op2", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "crm", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "crn", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "op1", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "o0", json_object_new_uint64(misc_register->MrsOp2));
     json_object_object_add(register_array, "mrsEncoding", mrs_encoding);
     json_object_object_add(register_array, "value", json_object_new_uint64(misc_register->Value));
 
diff --git a/sections/cper-section-memory.c b/sections/cper-section-memory.c
index 5f78eed..296425c 100644
--- a/sections/cper-section-memory.c
+++ b/sections/cper-section-memory.c
@@ -26,8 +26,17 @@
 
     //Bank.
     json_object* bank = json_object_new_object();
-    json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
-    json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    if ((memory_error->ValidFields >> 5) & 0x1)
+    {
+        //Entire bank address mode.
+        json_object_object_add(bank, "value", json_object_new_uint64(memory_error->Bank));
+    }
+    else 
+    {
+        //Address/group address mode.
+        json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
+        json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    }
     json_object_object_add(section_ir, "bank", bank);
 
     //Memory error type.
@@ -80,8 +89,17 @@
 
     //Bank.
     json_object* bank = json_object_new_object();
-    json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
-    json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    if ((memory_error->ValidFields >> 5) & 0x1)
+    {
+        //Entire bank address mode.
+        json_object_object_add(bank, "value", json_object_new_uint64(memory_error->Bank));
+    }
+    else 
+    {
+        //Address/group address mode.
+        json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
+        json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    }
     json_object_object_add(section_ir, "bank", bank);
 
     //Memory error type.
