Hi my first question … I start reading ‘The Art of Computer Programming’. I know it’s hard. First I decide to lean the language of book – I start with MIX. I made some exercises and I think I can manages with programs in the book. But the problem is everywhere I wrote, MIX is old, learn MMIX and so on. OKS, but why - this my question? I am learning 1 moth MIX and I start to understand problems in book and now stop working and start learning new ASM again, why? Say, MIX is old, but all code in the book is MIX if I spend time to learn MMIX I have to rewrote problems again, I think it will be very hard for me. Does MIX is so old that I really must learn new version? Can some one who have more experience with TAOCP to dive me an advice: Go on with book – examples, problems and so on in MIX or Stop to learn MMIX. And, of course what I will win if I do the first or second choice?
MIX or MMIX - what is the best
3.1k Views Asked by next_for At
2
There are 2 best solutions below
0
Martin Ruckert
On
Donald Knuth will convert the new editions of TAOCP to use MMIX. So the new volume, that just came out Volume 4A on Combinatorial Algorithms is already using the new MMIX. So if you want to read the new stuff, you need MMIX anyway. The support for MMIX relative to MIX is also becomming better. Check the MMIX repository at http://www.mmix.cs.hm.edu it contains executables for windows and linux and all kind of documentation. Last not least, MMIX has a sophisticated pipeline simulator, that comes very close to real modern machines, and MIX is not anything like it. So for someone with a serious interest MMIX is recomended. Martin
Related Questions in ASSEMBLY
- Is there some way to use printf to print a horizontal list of decrementing hex digits in NASM assembly on Linux
- How to call a C language function from x86 assembly code?
- Binary Bomb Phase 2 - Decoding Assembly
- AVR Assembly Clock Cycle
- Understanding the differences between mov and lea instructions in x86 assembly
- ARM Assembly code is not executing in Vitis IDE
- Which version of ARM does the M1 chip run on?
- Why would %rbp not be equal to the value of %rsp, which is 0x28?
- Move immediate 8-bit value into RSI, RDI, RSP or RBP
- Unable to run get .exe file from assembly NASM
- DOSbox automatically freezes and crashes without any prompt warnings
- Load function written in amd64 assembly into memory and call it
- link.exe unresolved external symbol _mainCRTStartup
- x86 Wrote a boot loader that prints a message to the screen but the characters are completely different to what I expected
- running an imf file using dosbox in parallel to a game
Related Questions in CPU-ARCHITECTURE
- What is causing the store latency in this program?
- what's the difference between "nn layout" and "nt layout"
- Will a processor with such a defect work?
- How do i find number of Cycles of a processor?
- Why does LLVM-MCA measure an execution stall?
- Can out-of-order execution of CPU affect the order of new operator in C++?
- running SPEC in gem5 using the SimPoint methodology
- Why don't x86-64 (or other architectures) implement division by 10?
- warn: MOVNTDQ: Ignoring non-temporal hint, modeling as cacheable!, While simulating x86 with spec2006 benchamrks I am getting stuck in warn message
- arithmetic intensity of zgemv versus dgemv/sgemv?
- What is the microcode scoreboard?
- Why don't x86/ARM CPU just stop speculation for indirect branches when hardware prediction is not available?
- Question about the behaviour of registers
- How to increase throughput of random memory reads/writes on multi-GB buffers?
- RISVC Single Cycle Processor Data Path and Testbench
Related Questions in TAOCP
- Why did Donald Knuth say that when implementing a circular queue with sequential allocation, overflow will not be detected when F = 0
- TAOCP Vol 1: Overflowing multiple stacks proof
- Why does the ADD command in Donald Knuths number one program written on MIX set the overflow to ON?
- What is the behaviour of STA (0:1) in MIX?
- What is a "gigamem"?
- Trying to find the Knuth discussion of quotient and remainder
- What is the meaning of "ENT1 *" in TAOCP MIX assembly language?
- Knuth List Insertion Method in C
- How to understand the algorithm of mysql's gen_lex_hash.cc?
- MIX DIV operator, and Conversion of packed bytes number
- How do I extract an algorithm from these instructions?
- Purpose to set to 0 least significant bits in MMIX assembly with memory operations?
- How does division work in MIXAL assembly?
- How can I get started using Donald Knuth's MIX/MMIX assembler?
- Knuth the art of computer programming ex 1.1.8
Related Questions in MMIX
- Why we should reserve a global register in MMIX?
- setjmp and longjmp implementation in mmix
- Trying to find the Knuth discussion of quotient and remainder
- MMIX changing characters in input
- MMIX TRAP not working every other time
- Purpose to set to 0 least significant bits in MMIX assembly with memory operations?
- How can I get started using Donald Knuth's MIX/MMIX assembler?
- How to compile Rust for MMIX
- Regex: find words following on "^\w+\s+" - New Syntax Definition (MMIX) - Sublime Text 3
- How can we obtain the same number by taking Roman Numerals?
- Mmix NEG and NEGU opcodes
- Inspect register contents during mmix interactive mode
- MMIX: questions on dynamic trap
- How do the tries work that are used in the mmo object format's symbol tables?
- Printf problem with gcc on mmix
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
MMIX is superior to MIX in just about every way. Fascicle 1 of Volume 1 explains why, in detail. Fortunately, if you've already learned MIX, learning MMIX shouldn't be too hard.
Rewriting the exercises you have already completed in MIX should not be difficult in MMIX; if it is, it suggests that you don't really grasp the algorithms in question.
Remember: the vast majority of the algorithms in TAOCP are described in English, not in MIX or MMIX.
However: if your goal is to be a "real software engineer", or even to be better at algorithms, TAOCP may not be the best place to start.
I'd recommend you take a look at the MIT OCW "Introduction to Algorithms" course taught by Leiserson and Erik Demaine. You can find links to it, along with a nice commentary, at http://www.catonmat.net/blog/mit-introduction-to-algorithms-part-one