diff --git a/src/frontend/A32/decoder/thumb32.inc b/src/frontend/A32/decoder/thumb32.inc
index 68b61148..79b29174 100644
--- a/src/frontend/A32/decoder/thumb32.inc
+++ b/src/frontend/A32/decoder/thumb32.inc
@@ -108,7 +108,7 @@ INST(thumb32_EOR_imm,        "EOR (imm)",                "11110v00100Snnnn0vvvdd
 //INST(thumb32_LEAVEX,         "LEAVEX",                   "111100111011----10-0----0000----")
 //INST(thumb32_CLREX,          "CLREX",                    "111100111011----10-0----0010----")
 INST(thumb32_DSB,            "DSB",                      "1111001110111111100011110100oooo")
-//INST(thumb32_DMB,            "DMB",                      "111100111011----10-0----0101----")
+INST(thumb32_DMB,            "DMB",                      "1111001110111111100011110101oooo")
 //INST(thumb32_ISB,            "ISB",                      "111100111011----10-0----0110----")
 
 //INST(thumb32_BXJ,            "BXJ",                      "111100111100----1000111100000000")
diff --git a/src/frontend/A32/translate/impl/thumb32_control.cpp b/src/frontend/A32/translate/impl/thumb32_control.cpp
index 6eca2686..24e099c9 100644
--- a/src/frontend/A32/translate/impl/thumb32_control.cpp
+++ b/src/frontend/A32/translate/impl/thumb32_control.cpp
@@ -7,6 +7,11 @@
 
 namespace Dynarmic::A32 {
 
+bool ThumbTranslatorVisitor::thumb32_DMB([[maybe_unused]] Imm<4> option) {
+    ir.DataMemoryBarrier();
+    return true;
+}
+
 bool ThumbTranslatorVisitor::thumb32_DSB([[maybe_unused]] Imm<4> option) {
     ir.DataSynchronizationBarrier();
     return true;
diff --git a/src/frontend/A32/translate/impl/translate_thumb.h b/src/frontend/A32/translate/impl/translate_thumb.h
index c20b5bb3..658c129e 100644
--- a/src/frontend/A32/translate/impl/translate_thumb.h
+++ b/src/frontend/A32/translate/impl/translate_thumb.h
@@ -160,6 +160,7 @@ struct ThumbTranslatorVisitor final {
     bool thumb32_EOR_imm(Imm<1> i, bool S, Reg n, Imm<3> imm3, Reg d, Imm<8> imm8);
 
     // thumb32 miscellaneous control instructions
+    bool thumb32_DMB(Imm<4> option);
     bool thumb32_DSB(Imm<4> option);
     bool thumb32_UDF();