r (Daftar)
Perintah r menampilkan atau memodifikasi register, register floating-point, bendera, pseudo-registers, dan alias nama tetap.
User-Mode
[~Thread] r[M Mask|F|X|?] [ Register[:[Num]Type] [= [Value]] ]
r.
Kernel-Mode
[Processor] r[M Mask|F|X|Y|YI|?] [ Register[:[Num]Type] [= [Value]] ]
r.
Parameter
Prosesor
Menentukan prosesor tempat pendaftaran dibaca. Nilai defaultnya adalah nol. Jika Anda menentukan Prosesor, Anda tidak dapat menyertakan parameter Daftar --semua register ditampilkan. Untuk informasi selengkapnya tentang sintaks, lihat Sintaks Multiproscessor. Anda hanya dapat menentukan prosesor dalam mode kernel.
Thread
Menentukan utas tempat register dibaca. Jika Anda tidak menentukan utas, utas saat ini akan digunakan. Untuk informasi selengkapnya tentang sintaks, lihat Sintaks utas. Anda hanya dapat menentukan utas dalam mode pengguna.
Masker M
Menentukan masker yang akan digunakan saat debugger menampilkan register. Huruf "M" harus huruf besar. Masker adalah jumlah bit yang menunjukkan sesuatu tentang tampilan register. Arti bit tergantung pada prosesor dan mode (lihat tabel di bagian Keterangan berikut untuk informasi selengkapnya). Jika Anda menghilangkan M, masker default akan digunakan. Anda dapat mengatur atau menampilkan masker default dengan menggunakan perintah Rm (Register Mask).
F
Menampilkan register floating-point. Huruf "F" harus huruf besar. Opsi ini setara dengan M 0x4.
X
Menampilkan register SSE XMM. Opsi ini setara dengan M 0x40.
Y
Menampilkan register AVX YMM. Opsi ini setara dengan M 0x200.
YI
Menampilkan register bilangan bulat AVX YMM. Opsi ini setara dengan M 0x400.
Z
Menampilkan register YMM AVX-512 (zmm0-zmm31) dalam format floating point.
ZI
Menampilkan register AVX-512 YMM (zmm0-zmm31) dalam format bilangan bulat.
K
Tampilkan register predikat AVX-512 Opmask (K0-K7).
?
(Hanya penetapan Pseudo-register) Menyebabkan pseudo-register memperoleh informasi yang ditik. Jenis apa pun diizinkan. Untuk informasi selengkapnya tentang sintaks r? , lihat Contoh Program Perintah Debugger.
Daftar
Menentukan register, flag, pseudo-register, atau fixed-name alias untuk ditampilkan atau diubah. Anda tidak boleh mendahului parameter ini dengan tanda (@). Untuk informasi selengkapnya tentang sintaks, lihat Mendaftarkan Sintaks.
Bilangan
Menentukan jumlah elemen yang akan ditampilkan. Jika Anda menghilangkan parameter ini tetapi Anda menyertakan Jenis, panjang pendaftaran penuh ditampilkan.
Jenis
Menentukan format data untuk menampilkan setiap elemen register. Anda dapat menggunakan Jenis hanya dengan register vektor 64-bit dan 128-bit. Anda dapat menentukan beberapa jenis.
Anda bisa menentukan satu atau beberapa nilai berikut ini.
Jenis | Format tampilan |
---|---|
Ib |
Byte yang ditandatangani |
Ub |
Byte tidak ditandatangani |
Iw |
Kata yang ditandatangani |
uw |
Kata tidak ditandatangani |
id |
DWORD yang Ditandatangani |
Ud |
DWORD tidak ditandatangani |
Iq |
Quad-word yang ditandatangani |
Uq |
Quad-word tidak ditandatangani |
f |
Floating-point 32-bit |
-d |
Floating-point 64-bit |
Nilai
Menentukan nilai yang akan ditetapkan ke register. Untuk informasi selengkapnya tentang sintaks, lihat Sintaks Ekspresi Numerik.
.
Menampilkan register yang digunakan dalam instruksi saat ini. Jika tidak ada register yang digunakan, tidak ada output yang ditampilkan.
Lingkungan
Item | Deskripsi |
---|---|
Mode | Mode pengguna, mode kernel |
Target | Live, crash dump |
Platform | Semua |
Informasi Tambahan
Untuk informasi selengkapnya tentang konteks pendaftaran dan pengaturan konteks lainnya, lihat Mengubah Konteks.
Keterangan
Jika Anda tidak menentukan Daftar, perintah r menampilkan semua register non-floating-point, dan perintah rF menampilkan semua register floating-point. Anda dapat mengubah perilaku ini dengan menggunakan perintah rm (Register Mask).
Jika Anda menentukan Daftar tetapi Anda menghilangkan tanda sama dengan (=) dan parameter Nilai , perintah menampilkan nilai register saat ini.
Jika Anda menentukan Daftar dan tanda sama dengan (=) tetapi Anda menghilangkan Nilai, perintah menampilkan nilai register saat ini dan meminta nilai baru.
Jika Anda menentukan Daftar, tanda sama dengan (=), dan Nilai, perintah mengubah register menjadi berisi nilai . (Jika mode diam aktif, Anda dapat menghilangkan tanda sama dengan. Anda dapat mengaktifkan mode diam dengan menggunakan perintah sq (Atur Mode Diam). Dalam mode kernel, Anda juga dapat mengaktifkan mode diam dengan menggunakan variabel lingkungan KDQUIET.)
Anda dapat menentukan beberapa register, dipisahkan dengan koma.
Dalam mode pengguna, perintah r menampilkan register yang terkait dengan utas saat ini. Untuk informasi selengkapnya tentang utas, lihat Mengontrol Proses dan Utas.
Dalam mode kernel, perintah r menampilkan register yang terkait dengan konteks register saat ini. Anda dapat mengatur konteks register agar sesuai dengan utas, rekaman konteks, atau bingkai trap tertentu. Hanya register terpenting untuk konteks register yang ditentukan yang benar-benar ditampilkan, dan Anda tidak dapat mengubah nilainya. Untuk informasi selengkapnya tentang konteks pendaftaran, lihat Mendaftarkan Konteks.
Saat Anda menentukan register floating-point berdasarkan nama, opsi F tidak diperlukan. Saat Anda menentukan satu register floating-point, nilai heksadesimal mentah ditampilkan selain nilai desimal.
Bit Mask berikut didukung untuk prosesor berbasis x86 atau prosesor berbasis x64.
Bit | Nilai | Deskripsi |
---|---|---|
0 1 | 0x1 0x2 | Menampilkan register bilangan bulat dasar. (Mengatur satu atau kedua bit ini memiliki efek yang sama.) |
2 |
0x4 |
Menampilkan register titik mengambang. |
3 |
0x8 |
Menampilkan register segmen. |
4 |
0x10 |
Menampilkan register MMX. |
5 |
0x20 |
Menampilkan register debug. Dalam mode kernel, mengatur bit ini juga menampilkan register CR4. |
6 |
0x40 |
Menampilkan register SSE XMM. |
7 |
0x80 |
(Hanya mode kernel) Menampilkan register kontrol, misalnya CR0, CR2, CR3 dan CR8. |
8 |
0x100 |
(Hanya mode kernel) Menampilkan deskriptor dan daftar status tugas. |
9 |
0x200 |
Menampilkan register AVX YMM di floating point. |
10 |
0x400 |
Menampilkan register AVX YMM dalam bilangan bulat desimal. |
11 |
0x800 |
Menampilkan register AVX XMM dalam bilangan bulat desimal. |
Contoh kode berikut menunjukkan perintah r untuk prosesor berbasis x86.
Dalam mode kernel, perintah berikut menunjukkan register untuk prosesor 2.
1: kd> 2r
Dalam mode pengguna, perintah berikut menunjukkan register untuk utas 2.
0:000> ~2 r
Dalam mode pengguna, perintah berikut menampilkan semua register eax yang terkait dengan semua utas (dalam urutan indeks utas).
0:000> ~* r eax
Perintah berikut mengatur register eax untuk utas saat ini ke 0x000000FF.
0:000> r eax=0x000000FF
Perintah berikut mengatur register st0 ke 1.234e+10 ( F bersifat opsional).
0:000> rF st0=1.234e+10
Perintah berikut menampilkan bendera nol.
0:000> r zf
Perintah berikut menampilkan register xmm0 sebagai 16 byte yang tidak ditandatangani lalu menampilkan konten lengkap register xmm1 dalam format floating-point presisi ganda.
0:000> r xmm0:16ub, xmm1:d
Jika sintaks saat ini adalah C++, Anda harus mendahului register dengan tanda (@). Oleh karena itu, Anda dapat menggunakan perintah berikut untuk menyalin register ebx ke register eax .
0:000> r eax = @ebx
Perintah berikut menampilkan pseudo-registers dengan cara yang sama seperti perintah r menampilkan register.
0:000> r $teb
Anda juga dapat menggunakan perintah r untuk membuat alias nama tetap. Alias ini bukan register atau pseudo-register, meskipun dikaitkan dengan perintah r . Untuk informasi selengkapnya tentang alias ini, lihat Menggunakan Alias.
Berikut adalah contoh perintah r. pada prosesor berbasis x86. Entri terakhir dari tumpukan panggilan mendahului perintah itu sendiri.
01004af3 8bec mov ebp,esp
0:000> r.
ebp=0006ffc0 esp=0006ff7c
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk