diff --git a/include/cpu.hpp b/include/cpu.hpp
index c2edca9..d4871fb 100644
--- a/include/cpu.hpp
+++ b/include/cpu.hpp
@@ -154,6 +154,10 @@
     void family(const uint8_t value);
     void manufacturer(const uint8_t positionNum, const uint8_t structLen,
                       uint8_t* dataIn);
+    void serialNumber(const uint8_t positionNum, const uint8_t structLen,
+                      uint8_t* dataIn);
+    void partNumber(const uint8_t positionNum, const uint8_t structLen,
+                    uint8_t* dataIn);
     void version(const uint8_t positionNum, const uint8_t structLen,
                  uint8_t* dataIn);
     void characteristics(const uint16_t value);
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);
     }
