แอสเซมบลียังเกี่ยวข้องหรือไม่ [ปิด]


18

มีความแตกต่างที่สำคัญระหว่างภาษาแอสเซมบลีและภาษาระดับสูงกว่าเมื่อมันมาถึงการเขียนโปรแกรมและ / หรือการจัดการโครงการ? เห็นได้ชัดว่ามันต้องใช้งบเพิ่มเติมในภาษาแอสเซมบลีเพื่อดำเนินการโดยเฉพาะอย่างยิ่งในภาษาอื่น ๆ ส่วนใหญ่ แต่มีความแตกต่างที่มีผลต่อความต้องการของโครงการที่จะเรียกใช้ (หรือควร) ?

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

ตัวอย่างหนึ่งที่เฉพาะเจาะจงคือความพร้อมของพนักงาน มีใครมีปัญหาในการค้นหาโปรแกรมเมอร์ภาษาแอสเซมบลีที่มีประสบการณ์และถ้าเป็นเช่นนั้นขั้นตอนใดที่สามารถนำมาใช้เพื่อลดปัญหานี้?


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

6
โปรดทราบว่ามีพื้นที่ของnon-[PC|web|enterprise]การเขียนโปรแกรมที่แอสเซมบลีเด่นหรือเป็นที่นิยมมาก ฉันกำลังพูดถึงตัวควบคุมไมโครระบบอัตโนมัติทางอุตสาหกรรมหรือหุ่นยนต์ แน่นอนว่ามีภาษาระดับสูงในพื้นที่เหล่านี้เช่นกัน แต่คุณเห็นการชุมนุมจำนวนมาก
Mchl

1
@Mchl: โครงการเหล่านี้ไม่ได้ทำใน C (หรือแม้แต่ C ++) และอาจเป็นไปได้ในการประกอบ ฉันเดาว่ามันแปลกมากที่ใช้แอสเซมบลีเท่านั้น
Martin Vilcans

1
ที่จริงแล้วในระบบอัตโนมัติทางอุตสาหกรรมคุณสามารถพบกับสาขาภาษาทั้งหมดที่ไม่มีอยู่นอกเขตข้อมูลนั้น ส่วนหนึ่งมาจากความแตกต่างของฮาร์ดแวร์ (สถาปัตยกรรมฮาร์วาร์ดซึ่งต่างจากสถาปัตยกรรมของฟอนนอยมันน์ที่เราคุ้นเคยกัน) เช่นเดียวกับประวัติความเป็นมาของการทำให้อุปกรณ์ควบคุมเหล่านี้สามารถเข้าถึงได้สำหรับช่างไฟฟ้าที่เคยทำงานกับสวิตช์และรีเลย์ นั่นเป็นวิธีที่แอลดี ( en.wikipedia.org/wiki/Ladder_logic ) เข้ามามีส่วนร่วมซึ่งจริงๆแล้วเป็นการตีความเชิงกราฟิกของการชุมนุม ดูบทความที่เชื่อมโยงสำหรับภาษาอื่น ๆ ที่ใช้ในระบบอัตโนมัติ
Mchl

2
ฉันมีตัวติดตั้งขนาดเล็กที่ฉันสนับสนุนอยู่ตอนนี้ซึ่งอยู่ในระหว่างการประกอบ มันง่ายเหมือนการเขียนในแอสเซมบลี (กับ Windows API) เป็นอย่างอื่นดังนั้นทำไมไม่ ฉันยังมีอินเตอร์เฟซที่ใช้บัตรเครดิตที่เขียนขึ้นในการชุมนุม เริ่มต้นในภาษาระดับสูง แต่มีปัญหามากมายในการทำงานที่ฉันเขียนใหม่ในการชุมนุมเพื่อให้ควบคุมบิตทั้งหมดที่ไหลได้ดีขึ้น ...
Brian Knoblauch

คำตอบ:


25

ใช่ - แต่ไม่บ่อย

อีกแง่หนึ่งการประกอบเป็นเพียงแค่พร็อกซีสำหรับภาษาเครื่องดังนั้นแน่นอนว่าคุณสามารถทำอะไรก็ได้ในการประกอบที่คุณสามารถทำได้ด้วยภาษาระดับสูงกว่า

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

ในไมโครโพรเซสเซอร์ย้อนกลับไปในยุค 80 และกลางต้น 90s หากคุณมีรหัสบางอย่างที่คุณจำเป็นต้องเรียกใช้อย่างรวดเร็วคุณมักจะเขียนมันในแอสเซมบลีเพราะคนที่มีทักษะสามารถเขียนชุดที่ดีที่สุดได้ง่ายกว่า C ส่วนใหญ่ คอมไพเลอร์สามารถสร้าง โปรแกรม Mac รุ่นแรกบางตัวเขียนขึ้นมาอย่างสมบูรณ์และรวดเร็วอย่างน่าอัศจรรย์สำหรับยุคนั้น แม้ว่าจะไม่ได้เขียนโปรแกรมทั้งหมดในชุดประกอบฉันก็มีส่วนแบ่งในการปรับวงในใน C ให้เหมาะสมผ่านการประกอบแบบฝัง

แต่สิ่งต่าง ๆ เริ่มเปลี่ยนแปลงในช่วงกลางทศวรรษที่ 1990 ซีพียูเริ่มรวมถึงคุณสมบัติต่าง ๆ เช่นการวางท่อและการคาดคะเนสาขาดังนั้นการสั่งซื้อที่มีประสิทธิภาพที่สุดก็ไม่ได้ปรากฏชัดต่อมนุษย์ ยิ่งไปกว่านั้นการสั่งซื้อที่มีประสิทธิภาพที่สุดนั้นแตกต่างกันระหว่างซีพียูในตระกูลเดียวกัน ตัวอย่างเช่นคอมไพเลอร์ PowerPC มักเสนอสวิตช์เป้าหมายสำหรับชุด G3, G4 และ G5 รหัสวัตถุเดียวกันจะทำงานกับพวกเขาทั้งหมด แต่มันจะทำงานในหนึ่งในชุดเหล่านั้นมีประสิทธิภาพมากขึ้น

ตั้งแต่นั้นมาการเรียนการสอนมีความซับซ้อนมากขึ้นเรื่อย ๆ โดยเฉพาะอย่างยิ่งในซีพียูที่ซับซ้อนทางสถาปัตยกรรมเช่น x86, PowerPC และ SPARC (ฉันเชื่อว่า ARM ยังคงเป็นวิธีที่ง่ายมาก) ปัจจัยใหญ่ที่เพิ่มเข้ามาคือขนาดรหัส - รหัสที่ใช้รอบ CPU มากขึ้น แต่สามารถอยู่ในแคชของ CPU ได้มักจะทำงานเร็วกว่ารหัสที่ใช้รอบ CPU น้อยลง . คอมไพเลอร์สมัยใหม่ที่สำคัญสามารถทำงานได้ดียิ่งขึ้นของการเพิ่มประสิทธิภาพรหัสบน CPU เหล่านั้นกว่ามนุษย์สามารถสมเหตุสมผล

ฉันไม่พบเหตุผลที่ดีในการเขียนการชุมนุมอย่างน้อย 15 ปี ฉันคิดว่าในปี 2011 การใช้งานหลักสำหรับการชุมนุมจะเป็น:

  • หากต้องการอ่านการถอดแยกชิ้นส่วนเมื่อทำการดีบักซึ่งบางครั้งฉันก็ยังทำวันนี้
  • การจัดการกับคุณสมบัติของ CPU ที่ไม่ได้มาตรฐานเช่นโหมดกราฟิกที่ขี้ขลาด
  • การเขียนคอมไพเลอร์ - จัดเตรียมรูปแบบระดับกลางที่มนุษย์สามารถอ่านได้เพื่อแปลภาษาระดับสูงกว่าลงใน

1
และแม้กระทั่งเหตุผลที่ # 3 ของคุณก็เริ่มหายไปกับคอมไพเลอร์ที่กำหนดเป้าหมายทั้งเฟรมเวิร์กคอมไพเลอร์ระดับสูงเช่น LLVM, nanojit หรือ libjit หรือสิ่งอื่น ๆ เช่น JVM, CIL, Parrot, Rubinius หรือ Neko bytecode
Jörg W Mittag

บางครั้งยังจำเป็นต้องใช้ SSE2 สักเล็กน้อยในงานกราฟิก / วิดีโอ แม้ว่าจะเป็นเกณฑ์เปรียบเทียบกับ TBB / OMP ก่อน!
Martin Beckett

@Martin: OMP ตั้งฉากกับ SSE2 (สมมติว่ามีโครงร่างของข้อมูลที่ดี)
rwong

@rwong - แต่กระบวนการยังคงอยู่ 1 ค้นพบว่ามันช้าเกินไป 2 หวังว่า OMP / TBB จะเพิ่มความเร็วให้เพียงพอ 3 รีสอร์ทเขียนมือรุ่น SSE2! (ตามลำดับความเจ็บปวด)
Martin Beckett

2
ตัวอย่างเช่นRoller Coaster Tycoon ทั้งหมดได้ถูกเขียนขึ้นในชุดประกอบ (ลบด้วยกราฟิคที่สร้างขึ้นใน c) และมีพลังอย่างน่าอัศจรรย์สำหรับเวลา บุคคล AIs หลายร้อยคนทำหน้าที่อย่างอิสระเกือบจะไร้รอยต่อเมื่อเกมส่วนใหญ่มีสไปรต์ 16x16 พิกเซลเพียงไม่กี่ตัวที่เคลื่อนไหวตามที่กำหนดไว้ล่วงหน้า ฉันชอบที่จะใช้มันเพื่อแสดงพลังของการชุมนุม
Ampt

19

ลองเขียนโปรแกรมไมโครคอนโทรลเลอร์เพื่อ "ฝังตัวเล็ก ๆ " - รีโมทรถปลุก, หน้าจอแบตเตอรี่โทรศัพท์, ตัวควบคุมแป้นพิมพ์, ตัวควบคุมความเร็วพัดลมโดยไม่ต้องใช้ชุดประกอบ

ในขณะที่การเคลื่อนย้ายชายแดนมีห้องสำหรับประกอบเสมอ

15 ปีที่ผ่านมาเครื่องวัดระยะทางจักรยานของคุณเป็นเครื่องจักรกลเตาอบไมโครเวฟอยู่ในวงจรอะนาล็อกรีโมททีวีอยู่ในวงจรดิจิตอลเครื่องรับสัญญาณทีวี Sat ถูกเขียนขึ้นในการประกอบเฟิร์มแวร์โทรศัพท์อยู่ใน C และแอปเพล็ตคอมพิวเตอร์อยู่ใน Java

7 ปีที่แล้วเตาไมโครเวฟอยู่ในวงจรดิจิตอลมีการเขียนรีโมททีวีประกอบกล่องรับสัญญาณทีวีที่เขียนด้วยภาษา C โทรศัพท์ของคุณใช้ Java-based UI

ทุกวันนี้เครื่องวัดระยะทางจักรยานอยู่ในวงจรดิจิตอลเตาอบไมโครเวฟได้รับเฟิร์มแวร์ในการประกอบรีโมททีวีมีเฟิร์มแวร์ใน C กล่องรับสัญญาณทีวีเรียกใช้จาวาโทรศัพท์ของคุณมีลินุกซ์

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

จะมีอุปกรณ์เครื่องใช้ของเล่นของเล่นสิ่งของทั่วไปที่จะถูกตั้งโปรแกรมในการประกอบ


3
คำตอบที่ดี. มีกี่คนที่จะจ่ายมากกว่าสองเท่าสำหรับบางสิ่งที่แบตเตอรี่ใช้งานได้นานเพียงเพราะ Java หรือบางสิ่งบางอย่างใช้เป็นแพลตฟอร์มการพัฒนา ดู groupon และวิธีอื่น ๆ ที่ทุกคนมองเพื่อประหยัดเงินดูทรัพยากรการประหยัดการเคลื่อนไหวสีเขียว ทำไมต้องขับค่าใช้จ่ายและพลังงานในผลิตภัณฑ์ฝังตัวทั้งหมดเพื่อหลีกเลี่ยงการประกอบ
old_timer

1
คุณลืมที่จะเพิ่มว่าตอนนี้คอมพิวเตอร์เรียกใช้ Javascript (Chromebooks) สำหรับฉันแล้วความก้าวหน้านั้นค่อนข้างน่าเศร้า แต่จริง
Hawken

ในปี 2560 CIA เข้าสู่โทรทัศน์ที่ใช้ Linux สัญญาณจาก Java ที่ใช้กุญแจรถสามารถถูกหลอกใคร ๆ ก็สามารถเชื่อมต่อผ่านเฟิร์มแวร์ WIFI ไปยัง C ++ ของกล้องดิจิตัลแปรงสีฟันแปรงสีฟันได้ใช้ประโยชน์จากระยะไกลในปี 2013 การตัดเสียงรบกวนที่สร้างขึ้นในงานประกอบ แม้ว่าแอสเซมบลีสูญเสียตำแหน่งเป็นตัวควบคุมระดับสูงสุดของสิ่งใดย้ายไปยังคอมโพเนนต์ย่อยแทน หน้าต่างบลายด์ของคุณรันจาวาอยู่แล้ว แต่บอร์ดควบคุมจาวาพูดกับตัวควบคุมมอเตอร์บลายด์ที่ทำงานด้วยชุดประกอบ
เอสเอฟ

8

ฉันยึดสิ่งนี้เป็นหลักว่าแอสเซมเบลอร์ที่ฉันเคยใช้ - โดยหลักคือ MASM, NASM และ TASM (ในระดับที่น้อยกว่า) TASM เวอร์ชันหลังบางรุ่นมี (มี?) คุณสมบัติบางอย่างเพื่อสนับสนุน OO แต่ฉันไม่ได้ใช้มากนักและฉันไม่ได้พยายามแสดงความคิดเห็น

ข้อแรก: ภาษาส่วนใหญ่ย้ายไปยังโครงสร้างที่อย่างน้อยก็ค่อนข้างเหมือนต้นไม้ ไม่ว่าจะเป็นเชิงวัตถุหรือเชิงวัตถุหรืออะไรก็ตามมีการกำหนดความสัมพันธ์ระหว่างส่วนต่าง ๆ ของระบบค่อนข้างน้อย นอกจากนี้ยังมีบางส่วนที่จะ "ป้องกัน" ส่วนหนึ่งของระบบจากการ "แทรกแซง" โดยไม่ได้ตั้งใจ แต่ส่วนอื่น ๆ (แม้ว่าการป้องกันมักจะสามารถข้ามได้หากคุณต้องการ) ในทางตรงกันข้ามภาษาแอสเซมบลีค่อนข้าง "แบน" - ส่วนใหญ่ของความสัมพันธ์ระหว่างรหัส (และข้อมูล) ในส่วนต่าง ๆ ของระบบจะถูกสร้างขึ้นเป็นหลักโดยเอกสารประกอบและการประชุมการตั้งชื่อขอบเขตน้อย

ผลลัพธ์ของสิ่งนี้คือมันง่ายกว่าที่จะจับคู่รหัสให้แน่นกว่าที่ควรจะเป็น ข้อกำหนดที่ทำให้การเลือกภาษาแอสเซมบลีเริ่มต้นด้วย (ประสิทธิภาพที่สูงขึ้นขนาดที่เล็กลง ฯลฯ ) มักให้รางวัลเช่นนี้ - โดยการข้ามส่วนต่อประสานที่ได้รับอนุมัติและเช่นนั้นคุณมักจะได้รับรหัสที่เล็กลงและเร็วขึ้น ดีกว่าในทุกมิติ) ภาษาและเครื่องมือต่าง ๆ ทำได้น้อยลงเพื่อ จำกัด สิ่งที่คุณทำ (ดีหรือไม่ดี) ซึ่งทำให้ผู้จัดการมีภาระมากขึ้นในการป้องกันปัญหา ฉันจะไม่พูดว่ามันมีคุณภาพแตกต่างกัน แต่เป็นเชิงปริมาณ - นั่นคือการจัดการต้องทำงานเพื่อป้องกันปัญหาไม่ว่าทางใดทางหนึ่ง แต่ในกรณีของภาษาแอสเซมบลีมักจะใช้แนวทางเพิ่มเติม ยอมรับได้

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

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

ความยากลำบากที่ฉันพบคือในการหาบุคลากรระดับสูงมากขึ้น - คนที่สามารถทำให้โครงการอยู่ภายใต้การควบคุมอย่างน้อยบางส่วนและไม่คุ้นเคยกับภาษาที่จะให้แนวทาง (และบังคับใช้เป็นส่วนใหญ่) แนวทางที่จำเป็นเพื่อรักษารหัสอย่างสมเหตุสมผล บำรุงรักษาและเข้าใจได้

เมื่อมองย้อนกลับไปฉันอาจเป็นสาเหตุของปัญหาที่ใหญ่ที่สุดในแง่นั้น ฉันเห็นปัญหาสองอย่างในส่วนของฉัน ครั้งแรกตามช่วงเวลาของโครงการที่ฉันกำลังคิดถึงฉันจะเขียนโปรแกรมเป็นภาษาระดับสูงเป็นระยะเวลานานแล้วและใช้ภาษาแอสเซมบลีเท่านั้นเป็นทางเลือกสุดท้าย เช่นนี้เมื่อฉันใช้มันเกือบทุกอย่างที่เป็นไปได้เพื่อให้ได้ประสิทธิภาพไม่ใช่แค่เกมยุติธรรม แต่คาดว่า ประการที่สองย้อนกลับไปเมื่อฉันทำงานในบางระบบที่เขียนทั้งหมด (หรือหลัก ๆ ) เป็นภาษาแอสเซมบลีมันอยู่ภายใต้ผู้จัดการโครงการที่มีความแข็งแรงมากกว่า ในเวลาที่ฉันยังเด็กและค่อนข้างต่อต้านตรงไปตรงมาในสิ่งที่พวกเขาทำสิ่งต่าง ๆ จึงมีแนวโน้มที่จะทำตรงกันข้าม เมื่อมองย้อนกลับไปสิ่งที่พวกเขาทำมีความสำคัญและไม่ได้ทำเพียงเพราะพวกเขาแก่และไม่ยืดหยุ่น (ซึ่งฉันค่อนข้างแน่ใจว่าเป็นอย่างไรที่ฉันเห็นสิ่งต่าง ๆ ในเวลานั้น)


ฉันมีความทรงจำที่ชอบของ TASM และ Orca / M แอสเซมเบลอร์ =)
Patrick Hughes

0

ในชุดความคิดเห็นของฉันเป็นแพลตฟอร์มการพัฒนาอาจไม่เกี่ยวข้องกับการใช้ชีวิตประจำวัน เหตุผลหลักสำหรับความคิดเห็นนี้อาจเป็นเพราะปริมาณของพลังการคำนวณที่ถูกลบออกจากกระบวนการที่กำหนดเมื่อเทียบกับจำนวนของเวลาในการพัฒนาที่จำเป็นในการปรับให้เหมาะสมกับกระบวนการเดียวกันโดยปกติแล้วจะไม่คุ้มค่ากับเวลาและพลังงาน .. ดูเหมือนว่าคน / ชั่วโมงหรือบางสิ่ง .. กรุณาแก้ไขถ้าคุณรู้ว่าสิ่งที่ฉันพูด .. ) มีข้อยกเว้นที่ชัดเจนดังกล่าวข้างต้น แต่เท่าที่การเขียนโปรแกรมหลักไปประกอบไม่ได้ใช้บ่อย

สิ่งนี้ถูกกล่าวว่า .. ส่วนประกอบยังคงมีความเกี่ยวข้องในทุกวันนี้เมื่อการเรียนรู้การเขียนโปรแกรมในบริบทของการศึกษาวิศวกรรมซอฟต์แวร์มันสอนสิ่งที่ภาษาการเขียนโปรแกรมระดับต่ำดูเหมือนว่ารู้สึกและพฤติกรรม ฉันจะไปและให้ตัวอย่างของสิ่งที่เราใช้ในชั้นเรียนวันนี้ เราใช้ความห้าวหาญ / 8 การชุมนุมที่พัฒนาขึ้นโดยสแตนลี่ย์ Warford (Pepperdine University USA) และซอฟต์แวร์โอเพนซอร์สที่กำหนดที่นี่ ส่วนใหญ่ใช้เพราะมัน virtualizes cpu และแสดงเนื้อหาหน่วยความจำในขณะที่ก้าวผ่านรหัสในขณะที่มันกำลังทำงานอยู่ (ค่อนข้างมีประโยชน์สำหรับการเรียนรู้การดีบัก)

ดังนั้นขึ้นอยู่กับแอสเซมบลีการใช้งานของคุณอาจมีหรือไม่มีความเกี่ยวข้องในความคิดของฉัน


0

ฉันคิดว่าคุณกำลังถามว่า "รถบรรทุกยังมีความเกี่ยวข้องหรือไม่ถ้าเรามีรถยนต์" ฉันหมายถึงแอสเซมบลีมีแอปพลิเคชันที่หลากหลายมาก แต่ไม่กว้างเท่าการเขียนโปรแกรมระดับสูงเช่นเดียวกับที่มีรถบรรทุกน้อยกว่ารถยนต์มาก

ในฟิลด์เช่นการปรับให้เหมาะสมของอัลกอริทึมคุณสามารถใช้ตัวประมวลผลการลงทะเบียนโดยตรงสำหรับการปรับปรุงอัลกอริธึมการประมวลผลภาพ / วิดีโอ

ในสาขาเช่นการเข้ารหัสคุณสามารถใช้ในวิธีเดียวกัน

ในโปรเซสเซอร์ใหม่ที่มีสถาปัตยกรรมใหม่ (จำได้ว่าเมื่อมีการเปิดตัวมือถือไมโครโปรเซสเซอร์) เพื่อให้แน่ใจว่าพวกเขาจะต้องเขียนบูตโหลดเดอร์และอื่น ๆ ในการชุมนุม (และกับโปรเซสเซอร์เก่าเกินไปเช่นกัน มัน).

และอาจมีตัวอย่างอีกมากมายดังนั้นจึงขึ้นอยู่กับ บริษัท ที่คุณให้ความสำคัญถ้า บริษัท ของคุณทุ่มเทให้กับการพัฒนาเว็บ / มือถือมีความเป็นไปได้สูงที่คุณไม่ต้องการ แต่ถ้า บริษัท ของคุณมุ่งเน้นไปที่ไมโครคอนโทรลเลอร์ ระบบฝังตัว ฯลฯ มีความเป็นไปได้ค่อนข้างมากที่คุณต้องการ

และความพร้อมใช้งานของพนักงานขึ้นอยู่กับว่าฉันคิดว่าถ้าคุณถามใน Intel, Qualcomm, ... พวกเขาจะต้องมีรายชื่อโปรแกรมเมอร์ของแอสเซมบลีขนาดใหญ่ (เช่นถ้าคุณถามที่ทำงานของคุณ คิดไม่มาก แต่ไม่ได้หมายความว่าไม่มีที่อื่นเกิดอะไรขึ้นถ้าคุณถามว่า


-3

หากคุณต้องการที่จะรู้ว่าทำไมการเรียนรู้การชุมนุมเป็นทางออกที่ดีที่สุด นี่คือเหตุผล

  1. ไม่จำเป็นต้องเรียนรู้การประกอบถ้าคุณกำลังจะเขียนโปรแกรมบน Visual Basic และ MS
  2. ไม่จำเป็นต้องเรียนรู้การประกอบถ้าคุณต้องสร้างโปรแกรมไมโครคอนโทรลเลอร์ที่ไม่มีความจริงจัง
  3. ไม่จำเป็นต้องเรียนรู้การประกอบถ้าคุณมีอสังหาริมทรัพย์ของหน่วยความจำในการกำจัดของคุณในขณะที่ทำงานกับไมโครคอนโทรลเลอร์ (พระเจ้าช่วยคุณในขณะที่เชื่อมต่อหน่วยความจำกับไมโครคอนโทรลเลอร์)
  4. ไม่จำเป็นต้องเรียนรู้การประกอบถ้าคุณไม่ต้องการพระเจ้าเหมือนมีอำนาจเหนือไมโครคอนโทรลเลอร์ / ไมโครโปรเซสเซอร์ของคุณ
  5. ไม่รู้ว่าการชุมนุมเป็นเหมือนการรู้ภูเขาน้ำแข็ง คุณสามารถเห็น 25% ของความสามารถของคุณและไมโครซอฟท์และ 75% ที่คุณจะไม่มีทางรู้หรือเข้าใจ
  6. ลองเรียกใช้ Kolibris OS ที่เขียนอย่างสมบูรณ์ใน Assembly !!! คุณเคยเห็นระบบปฏิบัติการที่บูทในเวลาน้อยกว่า 5 วินาทีและแอปพลิเคชันเริ่มทำงานด้วยการคลิกเมาส์ 1 วินาที
  7. คอมไพเลอร์สมัยใหม่มีฟังก์ชั่นการใช้งานทั่วไปในแบ็กเอนด์และด้วยเหตุนี้รหัสสุดท้ายที่สร้างขึ้นจะหนักหน่วงเมื่อเทียบกับแอสเซมบลี

การชุมนุมเป็นเหมือนนาตาชา Romanoff ของเวนเจอร์ส มันเป็นเสน่ห์และเวทมนตร์ ครั้งแรกมันจะกัดคุณ แต่เชื่อฉันคุณจะไม่มีวันลืมรสชาติ


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