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

ความท้าทายนี้เกี่ยวข้องกับภาษาแอสเซมบลี โปรดทราบว่าความท้าทายที่ต้องการให้คำตอบเป็นภาษาใดภาษาหนึ่งมักไม่สนับสนุน

5
เครื่องเสมือน 8 บิต
พื้นหลัง ฉันชอบชิป 8 บิต 6502 แบบเก่าของฉัน มันสนุกมากที่จะไขความท้าทายบางอย่างที่นี่บน PPCG ในรหัสเครื่อง 6502 แต่บางสิ่งที่ควรจะง่าย (เช่นอ่านข้อมูลหรือส่งออกไปยัง stdout) นั้นยุ่งยากโดยไม่จำเป็นในรหัสเครื่อง ดังนั้นจึงมีความคิดคร่าวๆในใจของฉัน: คิดค้นเครื่องเสมือน 8 บิตของตัวเองที่ได้รับแรงบันดาลใจจาก 6502 แต่ด้วยการออกแบบที่ปรับเปลี่ยนให้ใช้งานได้มากกว่าสำหรับความท้าทาย เริ่มใช้บางสิ่งฉันรู้ว่านี่อาจเป็นความท้าทายที่ดีถ้าการออกแบบ VM ลดลงจนเหลือน้อยที่สุด :) งาน ใช้เครื่องเสมือน 8 บิตที่สอดคล้องกับข้อกำหนดต่อไปนี้ นี่คือโค้ดกอล์ฟดังนั้นการติดตั้งที่มีไบต์น้อยที่สุดจะชนะ อินพุต การใช้งานของคุณควรใช้อินพุตต่อไปนี้: ไบต์ที่ไม่ได้ลงนามเดียวpcนี่คือตัวนับโปรแกรมเริ่มต้น (ที่อยู่ในหน่วยความจำที่ VM เริ่มดำเนินการ0- ตาม) รายการไบต์ที่มีความยาวสูงสุดของ256รายการนี่คือ RAM สำหรับเครื่องเสมือน (ที่มีเนื้อหาเริ่มต้น) คุณสามารถรับอินพุตนี้ในรูปแบบที่สมเหตุสมผล เอาท์พุต รายการไบต์ซึ่งเป็นเนื้อหาสุดท้ายของ RAM หลังจาก VM ยกเลิก (ดูด้านล่าง) คุณสามารถสมมติว่าคุณได้รับการป้อนข้อมูลที่นำไปสู่การยกเลิกในที่สุด อนุญาตรูปแบบที่เหมาะสม …

30
Mirage ของคนฉลาด
กาลครั้งหนึ่งฉันได้อ่านคำถาม / คำตอบนี้เกี่ยวกับ Quora มีโปรแกรมเมอร์ที่มีองศาวิทยาศาสตร์คอมพิวเตอร์ซึ่งไม่สามารถผ่านการทดสอบ FizzBuzz ได้หรือไม่ รหัสนี้เป็นคำตอบที่ชัดเจน for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i แน่นอนว่าFizzBuzzได้รับการตีกอล์ฟให้ตาย แต่นั่นไม่ใช่สิ่งที่คำถามนี้เกี่ยวกับ ในความเห็นมีคนพูดว่าคำตอบที่ชัดเจนนี้ดีมากเพราะมันง่ายที่จะเพิ่มเงื่อนไขพิเศษเช่นพิมพ์ "Jazz" …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 

20
เคล็ดลับสำหรับการเล่นกอล์ฟในรหัสเครื่อง x86 / x64
ฉันสังเกตเห็นว่าไม่มีคำถามดังกล่าวดังนั้นที่นี่: คุณมีเคล็ดลับทั่วไปสำหรับการเล่นกอล์ฟในรหัสเครื่องหรือไม่? หากเคล็ดลับนี้ใช้กับสภาพแวดล้อมบางอย่างหรือการประชุมที่โทรมาเท่านั้นโปรดระบุในคำตอบของคุณ กรุณาเพียงหนึ่งเคล็ดลับต่อคำตอบ (ดูที่นี่ )

18
ตัวเลขที่มีการหมุนสมมาตร
ได้รับจำนวนเต็มส่งออกtruthyค่าถ้ามันเป็นเช่นเดียวคว่ำลง (หมุน 180 องศา) หรือfalsyคุ้มค่าเป็นอย่างอื่น 0, 1และ8มีความสมมาตรในการหมุน 6กลายเป็น9และในทางกลับกัน ลำดับของตัวเลขที่ให้ผลลัพธ์ที่แท้จริง: OEIS A000787 0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, …
27 code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

14
สงครามนาโนคอร์
นี่คือการดัดแปลงของCore Warซึ่งเป็นโปรแกรม KOTH ย้อนหลังไปถึงศตวรรษที่ 20 การจะมีความเฉพาะเจาะจงมากขึ้นก็จะใช้ชุดคำสั่งง่ายอย่างไม่น่าเชื่อตามหลักออกจากข้อเสนอเดิม พื้นหลัง ใน Core War มีสองโปรแกรมที่ต่อสู้เพื่อควบคุมคอมพิวเตอร์ เป้าหมายของแต่ละโปรแกรมคือการชนะโดยการค้นหาและยุติโปรแกรมที่เป็นปฏิปักษ์ การต่อสู้เกิดขึ้นภายในหน่วยความจำหลักของคอมพิวเตอร์ หน่วยความจำนี้เรียกว่าแกนและมีที่อยู่ 8192 เมื่อการต่อสู้เริ่มต้นขึ้นรหัสสำหรับผู้แข่งขันแต่ละคน (เรียกว่านักรบ) จะถูกวางในหน่วยความจำแบบสุ่ม การดำเนินการโปรแกรมสลับกันระหว่างนักรบโดยปฏิบัติหนึ่งคำสั่งของแต่ละนักรบ แต่ละคำสั่งมีความสามารถในการปรับเปลี่ยนส่วนหนึ่งของแกนนำไปสู่ความเป็นไปได้ของโปรแกรมปรับเปลี่ยนด้วยตนเอง เป้าหมายคือการยุติโปรแกรมฝ่ายตรงข้าม โปรแกรมจะหยุดทำงานเมื่อพยายามเรียกใช้คำสั่งที่ไม่ถูกต้องซึ่งเป็นDATคำสั่งใด ๆ ชุดคำสั่ง แต่ละโปรแกรมประกอบด้วยชุดคำสั่งระดับต่ำซึ่งแต่ละโปรแกรมใช้สองฟิลด์เรียกว่าฟิลด์ A และ B ชุดคำสั่งนี้ดึงมาจากสเป็คดั้งเดิมมาก การเปลี่ยนแปลงที่สำคัญคือ 1) การชี้แจงเกี่ยวกับคำสั่งการเพิ่ม / การลบและ 2) การเปลี่ยนแปลงของ#โหมดการกำหนดแอดเดรสเพื่อให้สามารถใช้งานได้ทุกที่ Core Wars เวอร์ชันเต็มส่วนใหญ่มี opcode มากกว่า 20 โหมดโหมดการกำหนดแอดเดรส 8 โหมดและชุด "คำแนะนำการปรับเปลี่ยน" opcodes แต่ละคำสั่งจะต้องมีหนึ่งในเจ็ดรหัสที่แตกต่างกัน DAT A …

1
Bootloader golf: Brainf ***
สร้าง bootloader ที่รันโปรแกรม Brainfuck ที่กำหนด นี่คือโค้ดกอล์ฟดังนั้นโปรแกรมที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ เป็น bootloader ขนาดของโปรแกรมจะถูกนับเป็นไบต์ที่ไม่เป็นศูนย์ในรหัสที่คอมไพล์ brainfuck 30000 8-bit ล้นเซลล์ พอยน์เตอร์แรปทับ หมายเหตุบางประการเกี่ยวกับการทำงาน: ต้องอ่านอินพุตในลักษณะที่สนับสนุนอักขระ ASCII ที่พิมพ์ได้ทั้งหมดอย่างถูกต้อง การกดแป้นอื่น ๆ อาจแทรกตัวอักษรใดก็ได้หรือไม่ทำอะไรเลย การอ่านอินพุตของผู้ใช้จะต้องเป็นตัวอักษรบัฟเฟอร์ไม่ใช่บัฟเฟอร์บรรทัด การอ่านอินพุตของผู้ใช้ต้องสะท้อนก้องอักขระ ผลลัพธ์จะต้องเป็นไปตามโค้ดเพจ 437หรือโค้ดเพจเริ่มต้นของอะแดปเตอร์ VGA ในตัวของคุณ bootloader นี่คือ bootloader x86 bootloader ลงท้ายด้วย55 AAลำดับดั้งเดิม รหัสของคุณจะต้องทำงานบน VirtualBox, Qemu หรือโปรแกรมจำลอง x86 ที่รู้จักกันดีอื่น ๆ ดิสก์ Brainfuck ที่เรียกใช้งานได้จะอยู่ที่เซกเตอร์ของดิสก์ที่สองหลังจากบูทโหลดเดอร์ของคุณซึ่งโดยปกติจะอยู่ในส่วน MBR เซกเตอร์แรกบนดิสก์ รหัสเพิ่มเติม (รหัสใด ๆ ที่มากกว่า …

11
ภาษาแอสเซมบลีควิน
เขียนไปได้ที่การชุมนุมภาษาที่สั้นที่สุดควิน ใช้ ISA ใด ๆ ที่คุณต้องการเว้นแต่จะมีprint-quineคำสั่งหรือสิ่งที่เทียบเท่า ตัวอย่างเช่น x86, MIPS, SPARC, MMIX, IBM BAL, MIX, VAX, JVM, ARM และอื่น ๆ คุณสามารถเชื่อมโยงกับ_printfฟังก์ชั่นของไลบรารีมาตรฐาน C (หรือ Java เทียบเท่ากับ JVM bytecode) สำหรับ I / O ความยาวจะถูกตัดสินทั้งตามจำนวนการสอนและขนาดของส่วนข้อมูล วิธีแก้ไขจะต้องมีคำแนะนำอย่างน้อยสองคำ ควินินควรพิมพ์รหัสการประกอบไม่ใช่รหัสเครื่องที่ประกอบ

5
มีวัตถุแข็งหรือวัตถุนิ่ม ๆ หรือไม่
ได้รับแรงบันดาลใจจากการเปิดหนังสือ What-If อินพุตเป็นสี่เหลี่ยมผืนผ้าของช่องว่างในรูปของสตริงรายการของสตริง ฯลฯ โดยมีวัตถุที่ทำจาก#ภายใน: ######## # # ######## ### #### ### #### ### วัตถุจะไม่ตัดกันไม่สัมผัสสี่เหลี่ยม วัตถุนุ่มถูกกำหนดให้เป็นวัตถุที่ไม่ได้#อยู่ตรงกลางและเป็นเพียงเส้นขอบวัตถุแข็งคือวัตถุที่เต็มไป วัตถุที่มีความกว้างหรือความสูง<=2ถือว่ายาก วัตถุทั้งหมดมีความแข็งหรืออ่อน หากมีวัตถุแข็งมากขึ้นในการป้อนข้อมูลการส่งออก"Hard"ถ้ามากขึ้นนุ่มผลผลิต"Soft"ถ้าพวกเขามีค่าเท่ากัน, "Equal"เอาท์พุท นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ! กรณีทดสอบ กรณีเหล่านี้ไม่ได้ป้อนข้อมูลเต็ม แต่ควรระบุว่าแต่ละวัตถุควรเป็นอย่างไร การป้อนข้อมูลจริงจะเป็นแบบ ascii-art ที่ด้านบนของคำถาม ยาก # #### ## ## ########## ########## ########## อ่อนนุ่ม ### # # ### ################### # # # # # # ################### …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

1
จะลดขนาด EXE ของ x86 ASM ที่คอมไพล์ด้วย FASM ได้อย่างไร?
ในการออกกำลังกายฉันได้สร้างวิธีแก้ปัญหาง่ายๆสำหรับความท้าทายนี้ในภาษาแอสเซมบลี x86 ฉันกำลังใช้งาน FASM บน Windows นี่คือรหัสที่มาของฉัน: format PE console entry start include 'WIN32A.inc' section '.text' code executable start: push char ; Start at 'A' call [printf] ; Print the current letter 4 times call [printf] call [printf] call [printf] inc [char] ; Increment the letter cmp [char], 'Z' ; …

13
ผลิตภัณฑ์ Fibonacci
คุณสามารถแยกตัวเลขที่มากกว่า 0 เป็นผลรวมที่ไม่ซ้ำกันของตัวเลขฟีโบนักชีบวก ในคำถามนี้เราทำได้โดยการลบจำนวนฟีโบนัชชีบวกที่ใหญ่ที่สุดซ้ำไปซ้ำมา เช่น: 1 = 1 2 = 2 3 = 3 4 = 3 + 1 12 = 8 + 3 + 1 13 = 13 100 = 89 + 8 + 3 ตอนนี้ฉันเรียกผลิตภัณฑ์ Fibonacciว่าเป็นรายการเดียวกันกับข้างบน แต่ด้วยการเพิ่มถูกแทนที่ด้วยการคูณ ตัวอย่างเช่นf(100) = 89 * 8 * 3 = 2136. เขียนโปรแกรมหรือฟังก์ชั่นที่ให้จำนวนเต็มบวกnส่งคืนผลคูณของฟีโบนักชีของตัวเลขนั้น Testcases: …
13 code-golf  math  sequence  fibonacci  code-golf  word  code-golf  cipher  code-golf  string  math  subsequence  code-golf  regular-expression  code-golf  brainfuck  assembly  machine-code  x86-family  code-golf  math  factorial  code-golf  math  geometry  code-golf  math  arithmetic  array-manipulation  math  number  optimization  stack  metagolf  code-golf  tips  assembly  code-golf  tips  lisp  code-golf  number-theory  path-finding  code-golf  number  sequence  generation  code-golf  math  geometry  code-golf  grid  permutations  code-golf  code-golf  graphical-output  geometry  fractal  knot-theory  code-golf  math  arithmetic  code-golf  interpreter  balanced-string  stack  brain-flak  code-golf  math  set-theory  code-golf  math  array-manipulation  code-golf  code-golf  string  natural-language  code-golf  code-golf  math  linear-algebra  matrix  code-golf  string  encode 

2
วิธีที่เร็วที่สุดในการคำนวณลำดับของขนาดในชุดประกอบ x86
ภารกิจนั้นง่าย: เขียนชุดคำสั่งที่คำนวณลำดับความสำคัญของจำนวนเต็มโดยใช้วงจรนาฬิกาน้อยที่สุด ลำดับความสำคัญถูกกำหนดให้เป็นไม่ได้log10log2 ช่วงของการป้อนข้อมูลที่ถูกต้องคือ0การรวม พฤติกรรมสำหรับอินพุตภายนอกช่วงนั้นไม่ได้กำหนดไว้1012 ค่าควรจะปัดเศษลงเลขที่ใกล้ที่สุด, มีข้อยกเว้นว่าการป้อนข้อมูลได้รับการส่งออกที่ควรจะเป็น0 0(คุณสามารถพิจารณาว่านี่เป็นตัวแทนที่ดีที่สุดของอินฟินิตี้ลบที่เป็นไปได้ในจำนวนเต็มที่ไม่ได้ลงชื่อ) ต้องเป็นชุดประกอบ x86 จำนวนเต็มต้องเป็นค่ารันไทม์ไม่ใช่จำนวนเต็มแบบสแตติก / อินไลน์ ดังนั้นเราจึงไม่รู้ว่ามันคืออะไรในเวลารวบรวม สมมติว่าคุณมีจำนวนเต็มโหลดลงทะเบียนแล้ว (แต่รวมถึงการตั้งค่าในการลงทะเบียนในคำตอบเพื่อความชัดเจน) ไม่สามารถเรียกไลบรารีหรือฟังก์ชันภายนอกใด ๆ อิสระในการใช้ใด ๆ ของคำแนะนำที่มีอยู่ในเอกสารของอินเทล ไม่ค สถาปัตยกรรม Intel Core ~ ​​7 ใด ๆ ก็ได้รับการยอมรับ (แสดงอยู่ในหน้า 10 ) Nehalem ในอุดมคติ (Intel Core i7) คำตอบที่ชนะคือคำตอบที่ใช้รอบสัญญาณนาฬิกาน้อยที่สุดเท่าที่จะเป็นไปได้ นั่นคือมันสามารถมีการดำเนินงานมากที่สุดต่อวินาที นาฬิกาโดยประมาณสรุปวงจร are here: http://www.agner.org/optimize/instruction_tables.pdf การคำนวณรอบสัญญาณนาฬิกาสามารถเกิดขึ้นได้หลังจากโพสต์คำตอบแล้ว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.