คำถามติดแท็ก assembly

5
วิธีตรวจสอบว่าไบนารีต้องการ SSE4 หรือ AVX บน Linux
บน Linux /proc/cpuinfoอนุญาตให้หนึ่งตรวจสอบการตั้งค่าสถานะ CPU ทั้งหมดที่เครื่องมีในวิธีที่ง่าย โดยปกติแล้วหากโปรแกรมต้องการชุดคำสั่งของเครื่องวิธีที่ง่ายที่สุดในการพิจารณาว่าจะรันหรือไม่และดูว่าSIGILLสัญญาณเพิ่มขึ้นหรือไม่ แต่ในกรณีของฉันโปรเซสเซอร์ทั้งหมดของฉันสนับสนุนอย่างน้อย SSE4.1 และ AVX ดังนั้นมีวิธีง่ายๆในการตรวจสอบว่าไบนารีมีคำแนะนำพิเศษภายใน?
20 linux  x86  assembly 

1
จะเกิดอะไรขึ้นเมื่อฉันเรียกใช้“ cli; hlt” ในระบบ Linux ของฉัน
ดังนั้นเมื่อเร็ว ๆ นี้ฉันคิดว่ามี HLT opcode สำหรับการหยุด CPU เยี่ยมเลยมาดูกันว่าเกิดอะไรขึ้น! user@box:~$ cat > test.c int main(void) { __asm__("HLT"); return 0; } user@box:~$ gcc -o test test.c user@box:~$ ./test Segmentation fault (core dumped) user@box:~$ ดุจ! น่าเบื่อแค่ไหน ปรากฎว่า HLT เป็นคำสั่งที่ให้สิทธิพิเศษดังนั้นลองทำอย่างอื่นดู user@box:~$ mkdir test; cd test user@box:~/test$ cat > test.c #include <linux/module.h> #include <linux/kernel.h> #include …
16 linux  assembly 

3
เวลาแฝงของคำสั่ง CPU ในโปรเซสเซอร์ x86 และ x64
ฉันกำลังมองหาตารางหรือสิ่งที่คล้ายกันที่สามารถช่วยฉันในการคำนวณประสิทธิภาพของรหัสการประกอบ อย่างที่ฉันรู้ว่าการขยับบิตจะใช้เวลา 1 นาฬิกาของ CPU แต่ฉันดูจริงๆว่าต้องใช้เวลาเพิ่มเท่าไหร่ (การลบควรเหมือนกัน) การคูณและวิธีการคำนวณเวลาหารถ้าฉันรู้ค่าที่หาร ฉันต้องการข้อมูลเกี่ยวกับค่าจำนวนเต็ม แต่ยินดีต้อนรับเวลาดำเนินการลอยตัวเช่นกัน
14 64-bit  cpu  latency  x86  assembly 

3
ทำไมเราไม่เข้าใจเนื้อหาของไฟล์ไบนารีหลังจากรวบรวม
เท่าที่ผมรู้ว่าทุกโปรแกรมประกอบด้วยแพ็คของคำแนะนำโปรเซสเซอร์ที่มีตัวแปรข้อมูลเฉพาะบาง (float, int, ถ่าน ... ) ในการทำงานเกี่ยวกับการลงทะเบียนประมวลผล ดังนั้นสิ่งแรกที่ฉันคิดเกี่ยวกับมัน (เมื่อนานมาแล้ว) คือถ้าคุณรู้ว่าค่า ASCII ของ%¨#$¨#(เพียงตัวอย่างแบบสุ่ม) สามารถตีความได้ว่าเป็นที่อยู่ของregister pointer stack (เพียงแค่แสดงตัวอย่าง) ของ x86 หน่วยประมวลผล หากสิ่งนี้เป็นจริงทุกครั้งที่คุณพบค่า "อ่านไม่ได้" นี้เมื่ออ่านเนื้อหาของไฟล์ไบนารีคุณสามารถตีความได้ว่าการใช้ตัวชี้กองซ้อนเพื่อจัดการตัวแปรข้อมูลบางอย่าง น่าเสียดายที่นี่ไม่ได้เกิดขึ้น ด้านล่างมีตัวอย่างของเนื้อหาของping.exeโปรแกรมจาก Windows ที่เปิดด้วยnotepad.exe: มันเป็นไฟล์ไบนารีและข้อมูลนั้นไม่สามารถเข้าใจได้สำหรับมนุษย์เรา (มันสามารถเข้าใจได้สำหรับเครื่อง) มันไม่สมเหตุสมผลเลยสำหรับทุกคนแม้ว่าพวกเขาจะรู้รหัสการประกอบ (ระดับต่ำสุดของภาษาเครื่อง) ดังนั้นถ้าฉันเข้าใจทุกอย่างถูกต้องใครจะอธิบายได้ ทำไมรหัสไบนารี่ไม่สามารถกลับไปที่รหัสแอสเซมบลีได้เท่าที่พวกเขาอยู่ลึกลงไปในสิ่งเดียวกัน? หากสามารถเข้าใจรหัสการประกอบได้ทำไมไบนารีที่คอมไพล์ไม่ได้เป็นผลมาจากรหัสนี้ "อ่านได้" อีกต่อไป

3
โปรเซสเซอร์ x64 รุ่นเก่าที่แพร่หลายโดยขาดคำสั่ง cmpxchg16b เป็นอย่างไร
คำสั่ง cmpxchg16b สำหรับการแลกเปลี่ยนหน่วยความจำแบบอะตอมมิก 128 บิตไม่ได้รับการสนับสนุนในโปรเซสเซอร์ x64 รุ่นเก่า แต่ดูเหมือนว่ารุ่นนี้ได้รับการสนับสนุนจากโปรเซสเซอร์รุ่นใหม่มาหลายปีแล้ว เป็นไปได้อย่างไรที่ฉันจะพบกับเครื่อง 64 บิตด้วยโปรเซสเซอร์เก่าที่ขาดคำสั่งนี้?
8 assembly 

1
จะรับค่าสำหรับบล็อกพารามิเตอร์ BIOS ใน VBR ได้อย่างไร
ฉันกำลังสร้าง VBR ซึ่งอยู่ในภาคแรกของหนังสือ VBR จะต้องมี BIOS Parameter Block หากระบบไฟล์ FAT นั้นถูกนำไปใช้งาน เมื่อทำงานบนดิสก์ของฉัน (พูด) ฉันสามารถจัดการเพื่อค้นหาค่าสำหรับรายการใน VBR (พูดbpbSectorsPerTrack) แต่ถ้าหาก VBR เดียวกันนั้นถูกสร้างขึ้นมาให้ทำงานบนระบบที่แตกต่างกันในปริมาณที่ต่างกันล่ะ? ค่าต่างกัน ri8? ฉันควรจะได้รับค่าเหล่านั้นอย่างไร ในระยะสั้นคำถามของฉันมีดังนี้: 1) จำเป็นหรือไม่ที่ค่า VBR จะต้องแม่นยำ? 2) ถ้าเป็นเช่นนั้นฉันจะหาค่าเหล่านั้นได้จากที่ไหน? ขอบคุณ คำขอ: ถ้าเป็นไปได้โปรดตอบคำถามอื่นที่ฉันถามไปอีกวันที่ "stackoverflow" ที่ https://stackoverflow.com/questions/41226127/how-to-access-the-chs-information-from-the-partition- ตารางของ MBR? noredirect = 1 # comment69651023_41226127 ฉันต้องการคำตอบไม่ดี

1
แอสเซมเบลอร์ที่ดีที่สุด -> หนังสือ C หรือไม่ [ปิด]
ฉันรู้ว่ามีหนังสือแอสเซมเบลอร์ที่ดีและมีหนังสือ C / C ++ ที่ดี แต่มีหนังสือที่แมปภาษา / ระดับการเขียนโปรแกรมทั้งสองร่วมกันหรือไม่
-5 c++  c  x86  assembly 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.