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

ภาษาแอสเซมบลีเป็นภาษาการเขียนโปรแกรมระดับต่ำสำหรับคอมพิวเตอร์ไมโครคอนโทรลเลอร์หรืออุปกรณ์ที่ตั้งโปรแกรมได้อื่น ๆ ซึ่งคำสั่งแต่ละคำสั่งจะสอดคล้องกับคำสั่งรหัสเครื่องเดียว

1
จุดประสงค์ของโซนสีแดงคืออะไร?
Red zone เป็นพื้นที่ขนาดคงที่ในหน่วยความจำเกินกว่าตัวชี้สแต็กที่ยังไม่ได้ "จัดสรร" คอมไพเลอร์สร้างแอสเซมบลีเพื่อเข้าถึงพื้นที่นั้นในฟังก์ชันใบไม้แบบง่าย แต่ฉันไม่เห็นข้อได้เปรียบที่แท้จริงของเขตสีแดง หน่วยความจำเข้าถึงเกินตัวชี้สแต็คเป็นสิ่งที่อันตรายมากและสามารถนำไปสู่ความเสียหายของข้อมูล ทำไมถึงทำเช่นนี้? การบันทึกคำสั่งของโปรเซสเซอร์ 2 ตัว (push ebp; mov ebp esp) จะไม่ทำให้ความเร็วเพิ่มขึ้นจริง
12 assembly  stack 

12
การประกอบเป็นภาษาโปรแกรมแรก? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน4 ปีที่แล้ว ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ คุณคิดว่าคุณมีความคิดที่ดีเพียงใดในการสอนการประกอบคน (บางตัวแปร) เป็นภาษาโปรแกรมแรก? มันต้องใช้ความพยายามมากกว่าการเรียนรู้เช่น Java หรือ Python แต่จะมีความเข้าใจที่ดีเกี่ยวกับเครื่องมากหรือน้อยจาก "การเขียนโปรแกรมวันเดียว" (เมื่อเทียบกับภาษาระดับสูงหลายภาษาอย่างน้อย) คุณคิดอย่างไร? มันเป็นความคิดที่สมจริงอย่างน้อยสำหรับผู้ที่พร้อมจะใช้ความพยายามพิเศษหรือไม่? ข้อดีและข้อเสีย? หมายเหตุ: ฉันไม่ใช่ครูแค่อยากรู้อยากเห็น

2
รหัส NOP บางอย่างนั้นแตกต่างจากรหัสอื่นหรือไม่?
ฉันอยากรู้เกี่ยวกับสิ่งนี้สมมติว่าฉันมี: 00000000001 90 nop 00000000002 90 nop 00000000003 90 nop มันทำงานเหมือนกันไหม 00000000001 0F1F00 nop dword [ds:rax] ตัวอย่างที่สองมีผลกระทบอะไรบ้างเมื่อเทียบกับตัวอย่างแรก
12 assembly 

5
การเรียนรู้ที่จะโปรแกรมในสภา - ทรัพยากรที่มีประโยชน์ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา จากหัวข้อก่อนหน้ามันทำให้ฉันสนใจที่จะเรียนรู้เกี่ยวกับการเขียนโปรแกรม Assembly ไม่มากสำหรับการต้องการตั้งโปรแกรมแอพที่มีประโยชน์เพียงเพื่อให้ได้ความรู้สึกสำหรับการเขียนโปรแกรมระดับต่ำเพื่อให้เข้าใจสิ่งที่เกิดขึ้นได้ดียิ่งขึ้น ใครสามารถแนะนำหนังสือหรือแหล่งข้อมูลออนไลน์สำหรับผู้เริ่มต้นได้บ้าง ขอบคุณ
10 books  assembly 

2
Apollo-11: การใช้การรวมแทน linker
เมื่อเร็ว ๆ นี้ในรูปแบบดิจิตอลและกลายเป็นซื้อคืนที่เดิมพอลโล 11 คำแนะนำรหัสที่มาของคอมพิวเตอร์ได้รับการทำใช้ได้สำหรับการดูบน Github ในMAIN.agcผู้เขียน repo แสดงความคิดเห็นว่าพวกเขา แยกซอร์สโค้ดเสาหินขนาดใหญ่ออกเป็นส่วนย่อยที่เล็กกว่าและจัดการได้มากกว่านั่นคือแยกเป็นไฟล์ # # แต่ละไฟล์ อีกไม่นานผู้เขียนกล่าว อาจถูกถามอย่างสมเหตุสมผลว่าเหตุใดจึงมีการรวมแหล่งที่มาหลายหมื่นบรรทัดด้วยการรวมเข้าด้วยกันแทนที่จะรวบรวมไฟล์ต้นฉบับแยกจากกันแล้วเชื่อมโยงเข้ากับรูปแบบปฏิบัติการ คำตอบคือทีมพัฒนาดั้งเดิมไม่มีตัวเชื่อมโยง ฉันรู้ว่าตัวเชื่อมโยงคืออะไรและฉันเข้าใจประเด็นของพวกเขา - แต่ฉันไม่เคยได้ยินวลี (เท่าที่ ASM ดำเนินการ) "เข้าร่วมด้วยวิธีการรวม" สิ่งนี้หมายความว่า? เมื่อพิจารณาว่าตัวเชื่อมโยงเป็นเรื่องใหญ่ในการเขียนโปรแกรมฉันอยากรู้ว่าการทดแทนตัวเชื่อมโยงนี้ด้วย "วิธีการรวม" คืออะไรและมันทำงานอย่างไร

1
ทำไม GCC ใช้ไวยากรณ์ AT&T เป็นค่าเริ่มต้น
ฉันคิดว่าชื่อกล่าวมันทั้งหมด :) มีเหตุผลในทางปฏิบัติที่เฉพาะเจาะจงหรือไม่ (ฉันคิดว่าส่วนใหญ่เป็นประวัติศาสตร์ แต่ฉันไม่สามารถหาได้ด้วยตนเอง) ทำไม GCC ใช้ไวยากรณ์ AT & T / GAS หมายเหตุ: ฉันรู้ว่านี่เป็นเพียงค่าเริ่มต้นและคุณสามารถเปลี่ยนได้ หมายเหตุ 2: ฉันพบว่า "ไวยากรณ์ของ Intel" สามารถอ่านได้มากขึ้นด้วยเหตุนี้มันจึงทำให้ฉันประหลาดใจ
9 history  assembly  gcc 

2
ภาษาแอสเซมบลีที่ใช้ในระบบอากาศยาน
วันนี้ผู้บรรยายของฉันพูดถึงเหตุผลที่ระบบอากาศยานถูกตั้งโปรแกรมเป็นภาษาแอสเซมบลีเนื่องจากโปรแกรมที่เขียนมีข้อผิดพลาดน้อยกว่า คำสั่งนี้เป็นจริงหรือไม่? เพราะเมื่อเขาถามความคิดเห็นของเราฉันพูดว่าการชุมนุมสามารถสร้างโปรแกรมได้เร็วขึ้นดังนั้นมันจึงเป็นภาษาที่ดีสำหรับโปรแกรมระบบอากาศยานแบบเรียลไทม์ ฉันค้นหาใน google แต่ดูเหมือนจะไม่พบบทความที่ชัดเจนถึงคำชี้แจงของอาจารย์
9 assembly 

6
ฉันควรพยายามฝึกปัญหาในการชุมนุมหรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันกำลังดูปัญหาโครงการออยเลอร์ 48 : ชุดนี้ 1 1 + 2 2 + 3 3 + ... + 10 10 = 10405071317 ค้นหาหลักสิบสุดท้ายของซีรีส์ 1 1 + 2 2 + 3 3 + ... + 1000 1000 ใน Python ฉันสามารถทำได้ด้วยบรรทัดเดียว: sum((x**x for x in xrange(1,1001)) แต่การประกอบของสิ่งนี้จะเท่ากับ 100 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.