diff --git a/src/cpu.cpp b/src/cpu.cpp
index 9eb90f4..1010b58 100644
--- a/src/cpu.cpp
+++ b/src/cpu.cpp
@@ -53,6 +53,22 @@
     asset::manufacturer(result);
 }
 
+void Cpu::partNumber(const uint8_t positionNum, const uint8_t structLen,
+                     uint8_t* dataIn)
+{
+    std::string result = positionToString(positionNum, structLen, dataIn);
+
+    asset::partNumber(result);
+}
+
+void Cpu::serialNumber(const uint8_t positionNum, const uint8_t structLen,
+                       uint8_t* dataIn)
+{
+    std::string result = positionToString(positionNum, structLen, dataIn);
+
+    asset::serialNumber(result);
+}
+
 void Cpu::version(const uint8_t positionNum, const uint8_t structLen,
                   uint8_t* dataIn)
 {
@@ -128,7 +144,11 @@
     id(cpuInfo->id);                                    // offset 8h
     version(cpuInfo->version, cpuInfo->length, dataIn); // offset 10h
     maxSpeedInMhz(cpuInfo->maxSpeed);                   // offset 14h
-    if (cpuInfo->coreCount < maxOldVersionCount)        // offset 23h or 2Ah
+    serialNumber(cpuInfo->serialNum, cpuInfo->length,
+                 dataIn); // offset 20h
+    partNumber(cpuInfo->partNum, cpuInfo->length,
+               dataIn);                          // offset 22h
+    if (cpuInfo->coreCount < maxOldVersionCount) // offset 23h or 2Ah
     {
         coreCount(cpuInfo->coreCount);
     }
