สำนักงานราชบัณฑิตยสภา

163 ศ. ดร.มงคล เดชนคริ นทร์ วารสารราชบัณฑิตยสถาน ปีที่ ๓๘ ฉบับที่ ๓ ก.ค.-ก.ย. ๒๕๕๖ ภาคผนวก รายการชุดค� ำสั่งของซอฟต์แวร์ระบบ - 18 - ภาคผนวก รายการชุดคําสั่งของซอฟต แวร ระบบ ; Page 1 ; System Software for Microcontroller Board 8088 ; Adapted from Antonakos (1996) for use in 2013 .model tiny .code ORG 8000H ;start of System Software in ROM S_DATA EQU 20H ;8251 data port S_STAT EQU 21H ;8251 status port S_CTRL EQU 21H ;8251 control port M8251 EQU 4FH ;1 stop, no par., 8 data bits, 1,200 bauds C8251 EQU 37H ;command word for IC 8251 TIMER_0 EQU 30H ;8253 timer mode port TMR_CTRL EQU 33H ;8253 control port PORT_A1 EQU 24H ;8255 port a1 PORT_B1 EQU 25H ;8255 port b1 PORT_C1 EQU 26H ;8255 port c1 CTRL_1 EQU 27H ;8255 control port #1 PORT_A2 EQU 28H ;8255 port a2 PORT_B2 EQU 29H ;8255 port b2 PORT_C2 EQU 2AH ;8255 port c2 CTRL_2 EQU 2BH ;8255 control port #2 RUNLOC EQU 400H ;start addr of user program ;start addr of reserved RAM, 240 bytes from stack top R_AX EQU 7F00H ;AX store R_BX EQU 7F02H ;BX " R_CX EQU 7F04H ;CX " R_DX EQU 7F06H ;DX " R_BP EQU 7F08H ;BP " R_SI EQU 7F0AH ;SI " R_DI EQU 7F0CH ;DI " R_SP EQU 7F0EH ;SP " R_DS EQU 7F10H ;DS " R_SS EQU 7F12H ;SS " R_ES EQU 7F14H ;ES " GO_ADR EQU 7F16H ; BR_STAT EQU 7F18H ;brkpt status byte B_MMA EQU 7F1AH ;brkpt main-mem addr OP_KODE EQU 7F1CH ;opcode byte ; Page 2 BR_CS EQU 7F1EH ;brkpt CS BR_IP EQU 7F20H ;brkpt IP F_LAGS EQU 7F22H ;system flags C_SUM EQU 7F24H ;chksm store RESET EQU 0FFF0H ;addr for reset MAIN PROC CLI ;prevent system interrupt ; initialize all segment registers MOV AX,0 MOV DS,AX MOV ES,AX MOV SS,AX MOV BP,AX MOV SI,AX MOV DI,AX MOV SP,8000H ;ptr to top of stack (grows downward) ; set INT vector table for restart & breakpoint LEA BX,RE_STRT ;RE_STRT=addr for INT 95H routine MOV [SI+254H],BX ;restart addr (INT 95H) MOV [SI+256H],AX ;95Hx4 = 254H LEA BX,BR_ENTR ;BR_ENTR=addr for INT 3H routine MOV [SI+0CH],BX ;breakpoint addr (INT 3H) MOV [SI+0EH],AX ;3x4 = CH ; initialize I/O devices CALL IN_IT MOV DI,BR_STAT ;BR_STAT=brkpt status addr MOV BYTE PTR[DI],0 ;clear brkpt status LEA SI,HELLO ;send System Software greeting CALL S_END STI ;enable system interrupt JMP GET_COM ;get first command ; ********* end initialization ********* ; entry point for a breakpoint in user prog (via INT 3H) BR_ENTR: CALL ENVIR ;save/display environment LEA SI,BR_BAK ;display brkpt msg (with '[') CALL S_END

RkJQdWJsaXNoZXIy NTk0NjM=