Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
CS2340 Computer Architecture Fall 2022 Home Schedule CS2340.006Computer Architecture Fall 2022 Instructor: John Cole Section 005 Monday/Wednesday from 10:00 AM to 11:15 AM Office and Hours  Room: ECS South 2.311 Teaching Assistant: TBA Last update: 5/20//2022 Syllabus is on Coursebook Schedule Textbook: Computer Organization and Design, MIPS Version, sixth edition, by Patterson & Hennesey Warning!  Warning!  The assignments are difficult, you will have to read the textbook and attend class, and the tests count for a large part of your grade.  Worse, the tests all have programming problems that require you to write code.  On the plus side, your instructor is available outside of class, conducts review sessions, and is very helpful. Up to this point, all of your programmig courses have used high-level languages with many built-in functions, classes, and other constructs that hid the inner workings of the computer from you.  Those things are great, and make it easy to write code that focuses on the task at hand.  Consider, though, that someone had to write those library functions, or the low-level drivers in the operating system, or the embedded code in your thermostat, and often at least some of that is written in assembly language.  Also consider that if you are going to understand cybersecurity, this level of comprehension of how processors actually work is essential.  Thus the need for a course in the details of computer architectuer.  And besides, are you not curious as what is really going on inside the box?As to background, I have written a great many programs in various assembly languages, starting with the Univac 1108 mainframe and, most recently, MIPS in preparation for teaching this course.  You may also be aware that at least once a year I give an introductory tutorial on x86 assembly language to the Computer Security Group.  Thus one of the unstated objectives is to teach you how to write good assembly code, not just hack together something that mostly works. This means, among other things: Writing modules that assemble separately Writing clean, coherent, commented, readable code, not spaghetti code Using the .eqv directive so you don't have magic numbers in your code Optimizing the use of registers to make your code run fast Error handling As with any course I teach, you will do a lot of programming, which is the only way to learn how to program. This course will also require considerable reading.  If you do not read the textbook, you will most likely fail the course.  Trying to slide by using only the PowerPoint slides is also a really bad idea.  Since assembly language has no built-in functions the way Java or C++ do, you will have to write these.  The good news is that if you write, say, a string copy function, you can reuse it if you need it in another assignment for this class.  (You still can't use one someone else wrote.) I will be taking attendance, and although it will not figure directly into your grade, I tend to be unsympathetic to poor students who miss a lot of classes. Course Topics in Detail This course will teach you how to understand and write programs in assembly language.  While this is specific to the MIPS processor, the general techniques will be applicable to most machines.  Topics include: Basic design of modern stored-program digital computers Numbering systems and numeric formats, including floating-point numbers represented in binary Instruction set architecture Register set Assembly-language directives System calls for operating system functions Translation from C to assembly language Translation from assembly language to machine code Performance calculation Memory hierarchy Processor data path and pipelining Assembly language coding conventions 1. Use tabs.  Labels should be in column 1.  Instructions and directives should be tabbed to column 10 or 11.  Operands should be tabbed to column 18. 2. Comments on individual instructions should be tabbed to about column 30, and on the same line, not the line above.  Block comments should start with the # in column 1, a space, then the comment. 3. Use margins, especially for block comments.  Don't go past column 80.  New lines are cheap, and I don't want to side-scroll to read your comments.  This is assuming you write comments.  Uncommented code is wrong. 4. Do not indent assembly code.  There is no structuring the way you would structure C++ or Java, and it makes it less readable, not more 5. Use meaningful labels.  "Do" and "while" and "loop" are not meaningful. 6. Re-read the slides from Appendix A. For more information and code examples, see Documentation Standards Get the MIPS simulator here: http://courses.missouristate.edu/kenvollmar/mars/ Exam Rules