Pada mesin 32-bit, instruksi "add-with-carry" yang digunakan sebagai bagian dari urutan penambahan multi-presisi perlu menerima operan senilai 65 bit dan menghitung jumlah 33 bit. Spesifikasi register sumber akan mengidentifikasi dari mana 64 bit operan harus berasal, dan spesifikasi register tujuan akan mengatakan di mana 32 bit lebih rendah dari hasilnya harus pergi, tetapi apa yang harus dilakukan dengan operan "tambahkan satu tambahan" atau bit atas hasilnya? Diperbolehkan untuk menentukan sebagai bagian dari instruksi di mana operan tambahan harus berasal dan ke mana bit hasil tambahan harus cukup bermanfaat, tetapi secara umum tidak begitu berguna untuk membenarkan bidang tambahan dalam opcode. Memiliki "lokasi" yang tetap untuk menangani flag carry dapat sedikit canggung dari perspektif penjadwalan instruksi, tetapi '
Jika seseorang mencoba merancang set instruksi untuk memungkinkan aritmatika multi-presisi tetapi setiap instruksi terbatas pada dua operan 32-bit dan satu operan tujuan 32-bit, seseorang dapat mengimplementasikan "tambah" 64-bit dalam empat instruksi: "set r5 ke 1 jika r0 + r2 akan membawa atau nol sebaliknya; hitung r4 = r1 + r3; hitung r5 = r4 + r5; hitung r4 = r0 + r2 ", tetapi lebih dari itu akan membutuhkan tiga instruksi untuk setiap kata tambahan. Memiliki bendera pembawa tersedia sebagai sumber tambahan dan tujuan mengurangi biaya untuk satu instruksi per kata.
Catatan, btw, yang memiliki bit kontrol mengontrol apakah instruksi memperbarui register bendera dapat memfasilitasi eksekusi out-of-order, karena instruksi yang menggunakan atau memodifikasi bit flag harus mempertahankan urutan mereka relatif satu sama lain, tetapi instruksi yang tidak dapat diatur ulang secara bebas. Diberikan urutan:
ldr r0,[r1]
add r0,r0,r2
eors r4,r5,r6
sebuah unit eksekusi dapat dengan mudah mengenali bahwa instruksi ketiga dapat dijalankan tanpa harus menunggu data untuk dibaca [r1]
, tetapi jika instruksi kedua adalah adds r0,r0,r2
itu hanya akan mungkin jika unit eksekusi dapat memastikan bahwa pada saat segala sesuatu mencoba untuk menggunakan bendera, bendera nol akan menyimpan nilai yang ditetapkan dalam instruksi ketiga tetapi bendera carry akan menyimpan nilai dalam instruksi kedua.