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

📄 rdos.s

📁 Newlib 嵌入式 C库 标准实现代码
💻 S
📖 第 1 页 / 共 5 页
字号:
	divl %ebx	movl 32(%ebp),%esi	movzx %ax,%eax	movl %eax,(%esi)	popal	leave	ret					    					    /*############################################################################   Name       : RdosSetTime##   Purpose....: Set time##   Parameters.: year, month, day#                hour, min, sec, ms###########################################################################*/    .global RdosSetTime    RdosSetTime:	pushl %ebp	movl %esp,%ebp	pushal	movw 8(%ebp),%dx	movb 12(%ebp),%ch	movb 16(%ebp),%cl	movb 20(%ebp),%bh	movb 24(%ebp),%bl	movb 28(%ebp),%ah	UserGate time_to_binary_nr    movl %edx,%edi    movl %eax,%esi	movl 32(%ebp),%eax    movl $1192,%edx    mull %edx    addl %eax,%esi    adcl $0,%edi    	UserGate get_system_time_nr    subl %eax,%esi    sbbl %edx,%edi    movl %esi,%eax    movl %edi,%edx    UserGate update_time_nr	popal	leave	ret					    					    /*############################################################################   Name       : RdosTicsToRecord##   Purpose....: Convert tics to record format##   Parameters.: MSB, LSB#                &year, &month, &day#                &hour, &min, &sec, &ms###########################################################################*/    .global RdosTicsToRecord    RdosTicsToRecord:	pushl %ebp	movl %esp,%ebp	pushal	movl 8(%ebp),%edx	movl 12(%ebp),%eax	addl $596,%eax	adcl $0,%edx	UserGate binary_to_time_nr	pushl %edx	movl 16(%ebp),%esi	movzx %dx,%edx	movl %edx,(%esi)	movl 20(%ebp),%esi	movzx %ch,%edx	movl %edx,(%esi)	movl 24(%ebp),%esi	movzx %cl,%edx	movl %edx,(%esi)	movl 28(%ebp),%esi	movzx %bh,%edx	movl %edx,(%esi)	movl 32(%ebp),%esi	movzx %bl,%edx	movl %edx,(%esi)	movl 36(%ebp),%esi	movzx %ah,%edx	movl %edx,(%esi)	popl %edx	UserGate time_to_binary_nr	movl %eax,%ebx	movl 12(%ebp),%eax	subl %edx,%eax	xorl %edx,%edx	movl $1192,%ebx	divl %ebx	movl 40(%ebp),%esi	cmpw %ax,1000	jne rttrSaveMs	decw %axrttrSaveMs:		movzx %ax,%eax	movl %eax,(%esi)	popal	leave	ret					    					    /*############################################################################   Name       : RdosRecordToTics##   Purpose....: Convert from record format to tics##   Parameters.: &MSB, &LSB#                year, month, day#                hour, min, sec, ms###########################################################################*/    .global RdosRecordToTics    RdosRecordToTics:	pushl %ebp	movl %esp,%ebp	pushal	movl 40(%ebp),%eax	movl $1192,%edx	mull %edx	pushl %eax	movw 16(%ebp),%dx	movb 20(%ebp),%ch	movb 24(%ebp),%cl	movb 28(%ebp),%bh	movb 32(%ebp),%bl	movb 36(%ebp),%ah	UserGate time_to_binary_nr	popl %ebx	addl %ebx,%eax	adcl $0,%edx	movl 8(%ebp),%esi	movl %edx,(%esi)	movl 12(%ebp),%esi	movl %eax,(%esi)	popal	leave	ret					    					    /*############################################################################   Name       : RdosDecodeMsbTics##   Purpose....: Decode MSB tics##   Parameters.: MSB#                &day, &hour###########################################################################*/    .global RdosDecodeMsbTics    RdosDecodeMsbTics:	pushl %ebp	movl %esp,%ebp	pushal	movl 8(%ebp),%eax	xorl %edx,%edx	movl $24,%ecx	divl %ecx	movl 12(%ebp),%ebx	movl %eax,(%ebx)	movl 16(%ebp),%ebx	movl %edx,(%ebx)	popal	leave	ret					    					    /*############################################################################   Name       : RdosDecodeLsbTics##   Purpose....: Decode LSB tics##   Parameters.: LSB#                &min, &sec, &ms, &us###########################################################################*/    .global RdosDecodeLsbTics    RdosDecodeLsbTics:	pushl %ebp	movl %esp,%ebp	pushal	movl 8(%ebp),%eax	movl $60,%edx	mull %edx	movl 12(%ebp),%ebx	movl %edx,(%ebx)	movl $60,%edx	mull %edx	movl 16(%ebp),%ebx	movl %edx,(%ebx)	movl $1000,%edx	mull %edx	movl 20(%ebp),%ebx	movl %edx,(%ebx)	movl $1000,%edx	mull %edx	movl 24(%ebp),%ebx	movl %edx,(%ebx)	popal	leave	ret					    					    /*############################################################################   Name       : RdosDayOfWeek##   Purpose....: Get day of week##   Parameters.: year, month, day##   Returns....: day of week###########################################################################*/    .global RdosDayOfWeek    RdosDayOfWeek:	pushl %ebp	movl %esp,%ebp	pushl %ebx	pushl %ecx	pushl %edx	movl 8(%ebp),%edx	movb 12(%ebp),%ch	movb 16(%ebp),%cl    xorw %bx,%bx    xorb %ah,%ah	UserGate adjust_time_nr	pushw %dx	movl $365,%eax	imulw %dx	pushw %dx	pushw %ax	popl %ebx	popw %dx	UserGate passed_days_nr	decw %dx	shrw $2,%dx	incw %dx	addw %dx,%ax	addl %ebx,%eax    xorl %edx,%edx    addl $5,%eax    movl $7,%ebx    divl %ebx    movzx %dl,%eax	popl %edx	popl %ecx	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosGetTics##   Purpose....: Get system tics##   Parameters.: &MSB, &LSB###########################################################################*/    .global RdosGetTics    RdosGetTics:	pushl %ebp	movl %esp,%ebp	pushl %edx	pushl %esi	UserGate get_time_nr	movl 8(%ebp),%esi	movl %edx,(%esi)	movl 12(%ebp),%esi	movl %eax,(%esi)	popl %esi	popl %edx	leave	ret					    					    /*############################################################################   Name       : RdosAddTics##   Purpose....: Add tics to binary time##   Parameters.: &MSB, &LSB#                tics###########################################################################*/    .global RdosAddTics    RdosAddTics:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movl 16(%ebp),%eax	movl 12(%ebp),%ebx	addl %eax,(%ebx)	movl 8(%ebp),%ebx	adcl $0,(%ebx)	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosAddMilli##   Purpose....: Add milliseconds to binary time##   Parameters.: &MSB, &LSB#                milli###########################################################################*/    .global RdosAddMilli    RdosAddMilli:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movl 16(%ebp),%eax	movl $1193,%edx	mull %edx	movl 12(%ebp),%ebx	addl %eax,(%ebx)	movl 8(%ebp),%ebx	adcl %edx,(%ebx)	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosAddSec##   Purpose....: Add milliseconds to binary time##   Parameters.: &MSB, &LSB#                sec###########################################################################*/    .global RdosAddSec    RdosAddSec:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movl 16(%ebp),%eax	movl $1193000,%edx	mull %edx	movl 12(%ebp),%ebx	addl %eax,(%ebx)	movl 8(%ebp),%ebx	adcl %edx,(%ebx)	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosAddMin##   Purpose....: Add minutes to binary time##   Parameters.: &MSB, &LSB#                min###########################################################################*/    .global RdosAddMin    RdosAddMin:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movl 16(%ebp),%eax	movl $71582760,%edx	mull %edx	movl 12(%ebp),%ebx	addl %eax,(%ebx)	movl 8(%ebp),%ebx	adcl %edx,(%ebx)	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosAddHour##   Purpose....: Add hour to binary time##   Parameters.: &MSB, &LSB#                hour###########################################################################*/    .global RdosAddHour    RdosAddHour:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movl 16(%ebp),%eax	movl 8(%ebp),%ebx	adc %eax,(%ebx)	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosAddDay##   Purpose....: Add days to binary time##   Parameters.: &MSB, &LSB#                days###########################################################################*/    .global RdosAddDay    RdosAddDay:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movl 16(%ebp),%eax	movl $24,%edx	mull %edx	movl 8(%ebp),%ebx	adc %eax,(%ebx)	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosSyncTime##   Purpose....: Synchronize time with NTP##   Parameters.: IP###########################################################################*/    .global RdosSyncTime    RdosSyncTime:	pushl %ebp	movl %esp,%ebp	pushal	movl 8(%ebp),%edx	UserGate sync_time_nr	jc RdosSyncTimeFail	movl $1,%eax	jmp RdosSyncTimeDoneRdosSyncTimeFail:	xorl %eax,%eaxRdosSyncTimeDone:	popal	leave	ret					    					    /*############################################################################   Name       : RdosOpenCom##   Purpose....: Open com-port##   Parameters.: ID#                baudrate#                parity#                data bits#                stop bits#                SendBufferSize#                RecBufferSize##    Returns...: Com handle###########################################################################*/    .global RdosOpenCom    RdosOpenCom:	pushl %ebp	movl %esp,%ebp	pushl %ebx	pushl %ecx	pushl %edx	pushl %esi	pushl %edi	movb 8(%ebp),%al	movb 20(%ebp),%ah	movb 24(%ebp),%bl	movb 16(%ebp),%bh	movl 12(%ebp),%ecx	movw 28(%ebp),%si	movw 32(%ebp),%di	UserGate open_com_nr	movzx %bx,%eax	popl %edi	popl %esi	popl %edx	popl %ecx	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosCloseCom##   Purpose....: Close com-port##   Parameters.: Com handle###########################################################################*/    .global RdosCloseCom    RdosCloseCom:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movw 8(%ebp),%bx	UserGate close_com_nr	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosFlushCom##   Purpose....: Flush com-port##   Parameters.: Com handle###########################################################################*/    .global RdosFlushCom    RdosFlushCom:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movw 8(%ebp),%bx	UserGate flush_com_nr	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosReadCom##   Purpose....: Read com-port##   Parameters.: Com handle##   Returns....: Character###########################################################################*/    .global RdosReadCom    RdosReadCom:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movw 8(%ebp),%bx	UserGate read_com_nr	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosWriteCom##   Purpose....: Write com-port##   Parameters.: Com handle#                char##   Returns....: 0 for success###########################################################################*/    .global RdosWriteCom    RdosWriteCom:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movw 8(%ebp),%bx	movb 12(%ebp),%al	UserGate write_com_nr	movzx %al,%eax	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosWaitForSendCompletedCom##   Purpose....: Wait until send buffer is empty##   Parameters.: Com handle###########################################################################*/    .global RdosWaitForSendCompletedCom    RdosWaitForSendCompletedCom:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movw 8(%ebp),%bx	UserGate wait_for_send_completed_com_nr	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosEnableCts##   Purpose....: Enable CTS signal##   Parameters.: Com handle###########################################################################*/    .global RdosEnableCts    RdosEnableCts:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movw 8(%ebp),%bx	UserGate enable_cts_nr	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosDisableCts##   Purpose....: Disable CTS signal##   Parameters.: Com handle###########################################################################*/

⌨️ 快捷键说明

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