คำถามในหัวข้อ '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 มุมมอง
schedule
11.01.2024
จะบังคับให้ 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 มุมมอง
schedule
02.11.2023
คำใบ้โปรเซสเซอร์คืออะไร?
ในบริบทของ คู่มือนักพัฒนาซอฟต์แวร์สถาปัตยกรรม 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