คำถามในหัวข้อ 'x86'

การใช้ xor reg, reg ให้ข้อได้เปรียบเหนือ mov reg, 0 หรือไม่ [ทำซ้ำ]
มีสองวิธีที่รู้จักกันดีในการตั้งค่าการลงทะเบียนจำนวนเต็มให้เป็นค่าศูนย์บน x86 ทั้ง mov reg, 0 or xor reg, reg มีความเห็นว่าตัวแปรที่สองจะดีกว่าเนื่องจากค่า 0 ไม่ได้ถูกเก็บไว้ในโค้ด และจะบันทึกโค้ดเครื่องที่ผลิตได้หลายไบต์...
16966 มุมมอง
schedule 30.12.2023

การอ้างอิงที่ไม่ได้กำหนดไปยัง sync_fetch_and_add_4
เมื่อใดก็ตามที่ฉันพยายามใช้ __sync_fetch_and_add กับ -m32 บนเครื่อง 64 บิต ฉันจะได้รับข้อผิดพลาดต่อไปนี้ ขณะคอมไพล์ได้ดีกับ 64 บิตปกติ ฉันใช้คอมไพเลอร์ gcc 4.1.2 ปัญหาอาจเกิดขึ้นที่นี่และวิธีแก้ไขคืออะไร replication.cpp:(.text+0xb3b):...
12020 มุมมอง
schedule 13.01.2024

ฉันเข้าใจสแต็กหรือไม่? โปรดแก้ไขฉันด้วย
ฉันมีรหัสนี้เขียนใน c: int main(){ double x, y; int a, b, c; int *p; และฉันมี: sizeof(int)=4 sizeof(double)=8 โครงสร้างหน่วยความจำเป็นแบบนี้หรือเปล่า? รายละเอียดเพิ่มเติมในโหมดกราฟิก: IN MEMORY:(whole memory) LE = Little...
122 มุมมอง
schedule 01.11.2023

งงกับคำสั่ง x86 MOV
จากคู่มือ Intel64 & IA-32 เล่ม 2a มีการใช้งานที่เป็นไปได้มากมายสำหรับคำสั่ง 'mov' เช่น: mov r64, m64 # move m64 to r64 mov rax, moffs64 # move quadword at (offset) to RAX ฉันเขียนโค้ดเพื่อทดสอบ (แก๊ส, ไวยากรณ์ของ Intel): movabs...
1145 มุมมอง
schedule 03.01.2024

BIOS โหลดตารางขัดจังหวะโดยอัตโนมัติหรือไม่
ฉันเคยเห็นโปรแกรมเช่น bootloaders ซึ่งทำการขัดจังหวะเช่น int 10, int 13 เป็นต้น แน่นอนว่ารายการเหล่านี้ไม่ได้มีอยู่เสมอไป BIOS จึงโหลดมันขึ้นมาใช่ไหม หากเป็นเช่นนั้น BIOS จะโหลดอินเทอร์รัปต์ตัวใด นอกจากนี้ เป็นไปได้ไหมที่จะเขียนทับรายการเหล่านี้...
902 มุมมอง
schedule 15.12.2023

การขัดจังหวะแบบ non-maskable มีลำดับความสำคัญมากกว่าคำสั่งปัจจุบันหรือไม่?
ฉันกำลังศึกษาหลักสูตร Assembly และคำถามต่อไปนี้ทำให้ฉันงง ฉันพยายามทำซ้ำในโค้ด แต่ยากที่จะจำลองสถานการณ์ในเครื่องจำลอง ค่า 5 จะถูกเก็บไว้ที่ 0x0000100 ในเวลาเดียวกันเมื่อโปรเซสเซอร์ประเมินคำสั่ง INCB 0x0000100 การขัดจังหวะของ NMI...
171 มุมมอง
schedule 06.11.2023

พิมพ์ Nasm ไปยังบรรทัดถัดไป
ฉันมีโปรแกรมต่อไปนี้เขียนด้วย nasm Assembly: section .text global _start: _start: ; Input variables mov edx, inLen mov ecx, inMsg mov ebx, 1 mov eax, 4 int 0x80 mov edx, 2 mov ecx, num1 mov ebx, 0 mov...
6372 มุมมอง
schedule 07.12.2023

เหตุใด NASM จึงไม่มีปัญหากับการจำคำสั่งที่ถูกต้องเป็นชื่อสัญลักษณ์ในตัวถูกดำเนินการ
ฉันเขียนโปรแกรมง่ายๆ ต่อไปนี้ แต่ nasm ปฏิเสธที่จะคอมไพล์มัน section .text global _start _start: mov rax, 0x01 mov rdi, 0x01 mov rsi, str mov rdx, 0x03 syscall mov rax, 60 syscall segment .data str db 'Some...
139 มุมมอง

จะบังคับให้ NASM เข้ารหัส [1 + rax*2] เป็น disp32 + index*2 แทนที่จะเป็น disp8 + base + index ได้อย่างไร
หากต้องการ x = x*10 + 1 อย่างมีประสิทธิภาพ อาจเหมาะสมที่สุดที่จะใช้ lea eax, [rax + rax*4] ; x*=5 lea eax, [1 + rax*2] ; x = x*2 + 1 LEA แบบ 3 องค์ประกอบมีเวลาแฝงที่สูงกว่า บน CPU รุ่นใหม่ของ Intel เช่น 3 รอบต่อ 1 บนตระกูล...
509 มุมมอง

คำใบ้โปรเซสเซอร์คืออะไร?
ในบริบทของ คู่มือนักพัฒนาซอฟต์แวร์สถาปัตยกรรม Intel® 64 และ IA-32 ฉันต้องการทราบว่าคำว่า "คำใบ้" หมายถึงอะไร ฉันเห็นมันในบางส่วน: ในคำอธิบายของ PREFETCHWT1 -ดึงคำใบ้ T1 ล่วงหน้าโดยมีเจตนาที่จะเขียน ในการแนะนำ SSE4 โดยกล่าวว่า...
434 มุมมอง
schedule 01.11.2023

ฉันยังใหม่กับภาษาแอสเซมบลี ฉันจะทำลายลูปการเรียกซ้ำได้อย่างไร [ทำซ้ำ]
ฉันยังใหม่กับภาษาแอสเซมบลี ฉันกำลังสร้างฟังก์ชันการแยกตัวประกอบเฉพาะในไวยากรณ์ AT&T x64/GNU ที่นี่คือ.. .data .text .global main .prime_end: .string "End\n" .fact_end: .string "Finish\n" .fact_print: .string...
45 มุมมอง
schedule 30.11.2023