⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trp.s

📁 操作系统源代码
💻 S
字号:
.define .trpdivz.define .trpilin.define .trpcase.define .trprang.define .trpset.define .trpnofp.define .trpheap.define .trp.bss.M: .zerow 24/2.text.extern .trpdivz.extern .trpilin.extern .trpcase.extern .trprang.extern .trpset.extern .trpnofp.extern .trpheap.extern .trp.trpdivz:mov ax,#6mov dx,#.Mdivzjmp .Trp.trpilin:mov ax,#18mov dx,#.Milinjmp .Trp.trpcase:mov ax,#20mov dx,#.Mcasejmp .Trp.trprang:mov ax,#1mov dx,#.Mrangjmp .Trp.trpset:mov ax,#2mov dx,#.Msetjmp .Trp.trpnofp:mov ax,#18mov dx,#.Mnofpjmp .Trp.trpheap:mov ax,#17mov dx,#.Mheapjmp .Trp.Trp:xor     bx,bx.extern .trppcxchg    bx,.trppctest    bx,bxjz      2fpush    axcall    (bx)pop     axret2:mov bx,#22push bxpush dxmov ax,#2push axcall .Writecall __exit.trp:mov dx,axcmp dx,#21jae 1fsal dx,#1mov bx,#.Mtableadd bx,dxmov bx,(bx)test bx,bxjz 1fmov dx,bxjmp 2f1:mov bx,#.Mtrp+14mov cx,#6mov dx,ax1:and dx,#7add dx,'0'movb (bx),dldec bxsar dx,#1sar dx,#1sar dx,#1loop 1bmov dx,#.Mtrp2:jmp .Trp.Write:push bpmov bp,spmov .M+2,#4mov bx,4(bp)mov .M+4,bxmov bx,8(bp)mov .M+6,bxmov bx,6(bp)mov .M+10,bxmov ax,#.Mpush axmov ax,#1push axmov ax,#1mov bx,#.Mmov cx,#3int 32mov sp,bppop bpret.data.Mtable:	.data2 0,	.Mrang,	.Mset,	0,	0,	0,	.Mdivz,	0	.data2 0,	0,	0,	0,	0,	0,	0,	0	.data2 0,	.Mheap,	.Milin,	.Milin,	.Mcase.Mdivz: .asciz "Error: Division by 0 \n".Milin: .asciz "Illegal EM instruct'n\n".Mcase: .asciz "Err in EM case instr \n".Mrang: .asciz "Variable out of range\n".Mset:  .asciz "Err in EM set instr  \n".Mnofp: .asciz "Floating pt not impl.\n".Mheap: .asciz "Heap overflow        \n".Mtrp:	.asciz "EM trap 0000000 octal\n"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -