
VAX11 Simulator 1 Software Laboratory Electrical Engineering Department Technion, Haifa, Israel Technion, Israel Institute of Technology. VAX-11 Assembler & Simulator Adar Nir, Grosman Rotem Instructor – Zion Gal Nir Adar Rotem Grosman VAX11 Simulator 2 Nir Adar Rotem Grosman VAX11 Simulator 3 1. Contents 1. CONTENTS 3 2. INTRODUCTION 9 2.1. PROJECT OBJECTIVE 9 2.1.1. GENERAL PROJECT DESCRIPTION 9 2.1.2. THE PROJECT GOAL 9 2.1.3. TIMES 10 2.1.4. REQUIRED FEATURES 10 2.2. PROJECT RESULT 11 2.3. THE OLD SIMULATOR 12 2.3.1. PROBLEMS WITH THE OLD SIMULATOR - GENERAL 12 2.3.2. LIMITATIONS 12 2.3.3. BUGS 13 2.3.4. ADVANTAGES OF OUR SIMULATOR 13 2.4. DESIGN OVERVIEW 14 2.4.1. STAGE 1 – LEARNING 15 2.4.2. STAGE 2 – DESIGN THE ASSEMBLER AND THE ENVIRONMENT 18 2.4.3. STAGE 3 – IMPLEMENTATION 20 2.4.4. STAGE 4 - DESIGNING THE SIMULATOR 20 2.4.5. STAGE 5 - IMPLEMENTATION OF THE SIMULATOR 21 2.5. ACKNOWLEDGEMENTS 22 3. VAX11 SIMULATOR SPECIFICATIONS 23 3.1. THE BASIC STRUCTURE OF VAX-11 COMPUTER 23 3.2. THE MEMORY SYSTEM 23 3.3. CENTRAL PROCESSING UNIT (CPU) 23 3.4. PROCESSOR STATUS WORD (PSW) 24 3.5. PROCESSOR STATUS LONGWORD (PSL) 24 3.6. REGISTERS 26 3.7. INPUT/OUTPUT DEVICES 27 3.8. VAX-11 INFORMATION UNIT 27 3.9. INSTRUCTION FORMAT 27 3.10. ADDRESSING MODES 28 3.11. FUNCTION CALLS 29 3.12. INTERRUPTS 33 3.12.1. INTRODUCTION 33 3.12.2. PROCESSOR INTERRUPT PRIORITY LEVELS (IPLS) 34 3.12.3. CONTRAST BETWEEN EXCEPTIONS AND INTERRUPTS 34 3.12.4. SOFTWARE INTERRUPT SUMMARY REGISTER 35 3.12.5. SOFTWARE INTERRUPT REQUEST REGISTER 36 Nir Adar Rotem Grosman VAX11 Simulator 4 3.12.6. INTERRUPT PRIORITY LEVEL REGISTER 36 3.12.7. SYSTEM CONTROL BLOCK (SCB) 37 3.12.8. SYSTEM CONTROL BLOCK BASE (SCBB) 37 3.12.9. PRIVILEGED REGISTERS 38 3.13. ARITHMETIC EXCEPTIONS 41 3.13.1. INTEGER OVERFLOW TRAP 41 3.13.2. INTEGER DIVIDE BY ZERO TRAP 41 3.13.3. SUBSCRIPT RANGE TRAP 42 3.14. ASSEMBLER'S DIRECTIVES 43 3.14.1. .TEXT - TEXT CODE SEGMENT 43 3.14.2. .DATA - DATA CODE SEGMENT 43 3.14.3. .SET - SYMBOL DECLARATION 43 3.14.4. .SPACE - BYTE ARRAY OF NULLS 44 3.14.5. .ASCII - STRING DECLARATION 44 3.14.6. .ASCIZ - STRING DECLARATION 45 3.14.7. .ASCIC - STRING DECLARATION 46 3.14.8. .BYTE - BYTE ASSIGNMENT 46 3.14.9. .WORD - WORD ASSIGNMENT 47 3.14.10. .INT - INTEGER ASSIGNMENT 47 3.14.11. .LONG - LONG ASSIGNMENT 48 3.14.12. .QUAD - QUADWORD STORAGE DIRECTIVE 48 3.14.13. .ORG - FILL AT ADDRESS 48 3.14.14. .ENTRYPOINT - DEFINE THE STARTING ADDRESS OF THE PROGRAM. 49 3.15. SYSTEM CALLS 50 3.15.1. EXIT 50 3.15.2. GETCHAR 51 3.15.3. PUTCHAR 51 3.15.4. GETS 52 3.15.5. PUTS 53 3.15.6. SCANF - READ FORMATTED DATA FROM STDIN 54 3.15.7. PRINTF - WRITE FORMATTED STRING TO STDOUT 57 3.15.8. MALLOC - ALLOCATE MEMORY BLOCK 60 3.15.9. FREE - DEALLOCATE MEMORY BLOCK 61 3.15.10. SPRINTF - WRITE FORMATTED STRING TO STRING 63 3.15.11. INITGRAPH - INITIALIZES THE GRAPHICS SYSTEM 66 3.15.12. CLOSEGRAPH - SHUTS DOWN THE GRAPHICS SYSTEM 66 3.15.13. CLEARDEVICE - CLEARS THE GRAPHICS SCREEN 66 3.15.14. LINE - DRAWS LINE 67 3.15.15. RECTANGLE - DRAWS A RECTANGLE 67 3.15.16. SETCOLOR - SETS THE CURRENT DRAWING COLOR 68 3.15.17. GETMAXX, GETMAXY 69 3.15.18. PUTPIXEL 69 3.15.19. CIRCLE 69 3.15.20. OUTTEXTXY 70 3.15.21. SETFONT 70 3.16. INSTRUCTION SET SUMMARY 71 4. VAX11 SIMULATOR - USER GUIDE 72 4.1. INTRODUCTION 72 4.2. MAIN FEATURES 72 4.3. START WORKING 73 4.4. TEXT EDITOR 74 4.5. OPTIONS WINDOW 76 Nir Adar Rotem Grosman VAX11 Simulator 5 4.5.1. WORKING ENVIRONMENT 76 4.5.2. ASSEMBLER 78 4.5.3. SIMULATOR 78 4.6. THE ASSEMBLER 80 4.7. THE SIMULATOR 82 5. OUR PROJECT - OVERVIEW 85 5.1. PROJECT MODULES 85 5.1.1. THE WORKING ENVIRONMENT 85 5.1.2. THE ASSEMBLER 85 5.1.3. THE SIMULATOR & THE CONTROLLER 86 6. SETTINGS CLASS 87 6.1. DESCRIPTION 87 6.2. CLASS STRUCTURE 87 7. WORKING ENVIRONMENT 89 7.1. OVERVIEW 89 7.2. ENVIRONMENT CLASSES 91 7.2.1. FRMMAIN 91 7.2.2. FRMTASKLIST 95 7.2.3. FRMCOMPILEMESSAGES 95 7.2.4. FRMEDITOR 96 7.2.5. REGISTERSVIEW 97 7.2.6. MEMORYVIEW 98 7.2.7. STACKVIEW 98 7.2.8. WATCHESVIEW 99 7.2.9. PROGRAMSPOOL 100 7.2.10. PROGRAM 101 7.2.11. BREAKPOINTLIST, BREAKPOINTENTRY (CLASS) 102 7.3. SIMULATOR DEBUG MODE'S DESIGN 103 7.3.1. FLAGS 103 7.3.2. SEMAPHORES 103 8. ASSEMBLER'S CLASS & ALGORITHMS 104 8.1. OVERVIEW 104 8.1.1. DATA STRUCTURES 105 8.1.2. CLASSES 105 8.1.3. ALGORITHM 106 8.2. DATA STRUCTURES 107 8.2.1. OPCODES TABLE 107 8.2.2. KNOWN PROCEDURES TABLE 108 8.2.3. KNOWN REGISTERS TABLE 108 8.2.4. ASSEMBLER MESSAGES 109 8.2.5. KNOWN VAX-11 FUNCTIONS: 110 8.2.6. VAX-11 REGISTER LIST 110 8.2.7. VAX-11 COMMANDS 111 Nir Adar Rotem Grosman VAX11 Simulator 6 8.3. ASSEMBLER CLASS AND INTERNAL DATA STRUCTURES 115 8.3.1. ASSEMBLER CLASS INTERFACE 115 8.3.2. CODEBLOCK (CLASS) 115 8.3.3. OPCODE ENTRY (CLASS) 117 8.3.4. SYMBOLS TABLE (CLASS) 117 8.3.5. LINESLOCATIONS (CLASS) 118 8.3.6. COMPILERCOMMENT (CLASS) 119 8.3.7. PASS2LIST (CLASS) 119 8.4. ASSEMBLER ALGORITHMS 120 8.4.1. GENERAL 120 8.4.2. CONSTRUCTOR 120 8.4.3. GETSYMBOLSTABLE 121 8.4.4. GETCOMPILEMESSAGES 121 8.4.5. GETLSTFILE 122 8.4.6. GETMACHINECODE 122 8.4.7. COMPILECODE 123 8.4.8. PRECOMPILER 124 8.4.9. DOPASS1 125 8.4.10. ANALYZECOMMAND 127 8.4.11. FETCHOPERAND 128 8.4.12. ANALYZEDIRECTIVE 128 8.4.13. READNEXTNUMBER 129 8.4.14. READNEXTWORD 130 8.4.15. READNEXTCHAR 130 8.4.16. CALCEXPRESSION 130 8.4.17. ANALYZESTRING 131 8.4.18. DOPASS2 131 8.4.19. OVERRANGE 132 9. VAX-11 SIMULATOR 133 9.1. SIMULATOR CLASS AND INTERNAL DATA STRUCTURES 133 9.1.1. CLASSES OVERVIEW 133 9.1.2. MEMORY CLASS 135 9.1.3. SIMULATOR CLASS 136 9.1.4. REGISTERS (CLASS) 137 9.1.5. CONSOLE 137 9.2. SIMULATOR ALGORITHMS 140 9.2.1. MEMORY 140 10. TEST PROGRAMS 141 10.1. PROGRAM 1 – “HELLO, WORLD” 141 10.2. PROGRAM 2 – DUMP MEMORY 143 10.3. PROGRAM 3 – ANALYZING USER INPUT 144 10.4. PROGRAM 4 – PRIME NUMBERS 145 10.5. PROGRAM 5 – STRING PROCESSING 146 10.6. PROGRAM 6 - FIBONACCI SERIES - VERSION 1 147 10.7. PROGRAM 7 - FIBONACCI SERIES - VERSION 2 148 10.8. PROGRAM 8 - COPY A STRING 149 10.9. PROGRAM 9 - ANALYZE INPUT - NUMBER OF CHARS, WORDS AND LINES 150 11. VAX-11 OPCODES 151 Nir Adar Rotem Grosman VAX11 Simulator 7 11.1. OPERAND DESCRIPTORS 151 11.2. NOTATION 153 11.3. VAX-11 OPCODES AND EXAMPLES 154 11.3.1. ACB ADD COMPARE AND BRANCH 154 11.3.2. ADD ADD 156 11.3.3. ADWC ADD WITH CARRY 159 11.3.4. ADAWI ADD ALIGNED WORD INTERLOCKED 160 11.3.5. AOB ADD ONE AND BRANCH 162 11.3.6. ASH ARITHMETIC SHIFT 164 11.3.7. B BRANCH ON (CONDTION) 166 11.3.8. BB BRANCH ON BIT 172 11.3.9. BB BRANCH ON BIT (AND MODIFY WITHOUT INTERLOCKED) 174 11.3.10. BB BRANCH ON BIT INTERLOCKED 175 11.3.11. BIC BIT CLEAR 176 11.3.12. BIS BIT SET 179 11.3.13. BISPSW, BICPSW BIT SET PSW, BIT CLEAR PSW PSL 182 11.3.14. BIT BIT TEST 183 11.3.15. BLB BRANCH ON LOW BIT 185 11.3.16. BPT BREAKPOINT FAULT 187 11.3.17. BR, JMP BRANCH, JUMP 188 11.3.18. BSB, JSB SUBROUTINE INSTRUCTIONS JUMP, BRANCH TO SUBROUTINE 189 11.3.19. CALLG CALL PROCEDURE WITH GENERAL ARGUMENT LIST 190 11.3.20. CALLS CALL PROCEDURE WITH STACK ARGUMENT LIST 192 11.3.21. CASE CASE INSTRUCTIONS 194 11.3.22. CLR CLEAR 195 11.3.23. CMP COMPARE 196 11.3.24. CMPC COMPARE CHARACTERS 198 11.3.25. CVT CONVERT 200 11.3.26. DEC DECREMENT 202 11.3.27. DIV DIVIDE 204 11.3.28. EDIV EXTENDED DIVIDE 206 11.3.29. EMOD EXTENDED MULTIPLY AND INTEGERIZE 207 11.3.30. EMUL EXTENDED MULTIPLY 209 11.3.31. HALT 210 11.3.32. INC INCREMENT 211 11.3.33. INDEX COMPUTE INDEX 213 11.3.34. INSQUE INSERT ENTRY IN QUEUE 214 11.3.35. LOCC SKPC LOCATE CHARACTER, SKIP CHARACTER 216 11.3.36. MATCHC MATCH CHARACTERS 218 11.3.37. MCOM MOVE COMPLEMENTED 219 11.3.38. MNEG MOVE NEGATED 220 11.3.39. MOV 222 11.3.40. MOVA, PUSHA MOVE ADDRESS, PUSH ADDRESS 225 11.3.41. MOVC MOVE CHARACTER 226 11.3.42. MOVPSL MOVE FROM PSL 229 11.3.43. MOVTC MOVE TRANSLATED CHARACTERS 230 11.3.44. MOVTUC MOVE TRANSLATED UNTIL CHARACTER 232 11.3.45. MOVZ MOVE ZERO-EXTENDED 234 11.3.46. MUL MULTIPLY 235 11.3.47. POLY POLYNOMINAL EVALUATION 237 11.3.48.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages291 Page
-
File Size-