2021年 #达喀尔拉力赛# SS2中国军团成绩如下:
汽车组
第13名:318号@韩魏达喀尔 / @廖岷 04h 35' 02''
第19名:343号刘彦贵/@潘宏宇 04h 44' 06''
第22名:361号@赛车手鹿丙龙 /@领航马文科 04h 46' 52''
第34名:352号@车手张国宇 /沙贺 05h 02' 03''
摩托车组
第38名:41号扎克尔 05h 08' 38''
第52名:55号@赵宏義 05h 52' 15''
汽车组
第13名:318号@韩魏达喀尔 / @廖岷 04h 35' 02''
第19名:343号刘彦贵/@潘宏宇 04h 44' 06''
第22名:361号@赛车手鹿丙龙 /@领航马文科 04h 46' 52''
第34名:352号@车手张国宇 /沙贺 05h 02' 03''
摩托车组
第38名:41号扎克尔 05h 08' 38''
第52名:55号@赵宏義 05h 52' 15''
#陆柯燃[超话]#lkr#陆柯燃 THE9长腿舞担# #陆柯燃行走画报#
08:00~12:00空瓶汇总
每条捞自家至少十条❗目标2k❗
争取屠屏10条❗❗❗
⭕ 直播台11:29https://t.cn/A6Uarnuk
⭕ ELLEidol10:17https://t.cn/A6UaEfdI
⭕ SuperELLE10:05https://t.cn/A6UaRUhH
影视剧未央9:35https://t.cn/A6UaQoz2
娱乐扒圈圈圈9:00https://t.cn/A6UajwI5
扒圈教父8:45https://t.cn/A6UaWwC3
打卡: 陆柯燃k@THE9-陆柯燃
08:00~12:00空瓶汇总
每条捞自家至少十条❗目标2k❗
争取屠屏10条❗❗❗
⭕ 直播台11:29https://t.cn/A6Uarnuk
⭕ ELLEidol10:17https://t.cn/A6UaEfdI
⭕ SuperELLE10:05https://t.cn/A6UaRUhH
影视剧未央9:35https://t.cn/A6UaQoz2
娱乐扒圈圈圈9:00https://t.cn/A6UajwI5
扒圈教父8:45https://t.cn/A6UaWwC3
打卡: 陆柯燃k@THE9-陆柯燃
20200722
在阅读控制台设备驱动和辅助设备驱动的时候,对汇编有了更多的认识和细致的体会.它与面向过程的C最大的不同,体现在跳转和初始化的语法上,是直接面对机器操作(利用指令系统).也就是汇编非常接近机器,是一种指令系统的复杂操作.它在选择功能分支的时候,依靠的直接是找到入口.而C的调用子程序或者函数,这个工作是依靠操作系统来完成的.级别不同.如果以顺序的思路来看待汇编写成的大型程序,其实利用跳转和功能入口,也能形成线形联系,只不过需要地址跳转.在这个过程中,中断这一很重要的概念得以体现.
控制台驱动程序功能表,就分为4个功能:
04H,682-6DC,从键盘读入指定数目的字符到内存缓冲区
05H,6DD-72A,不等待非破坏性读
07H,72B-742,刷新控制台缓冲区和键盘缓冲区
08H,743-74H,将内存缓冲区中指定数目输出到屏幕
同时还存在一个16H中断:
00H,读下一个键盘字符,入口参数AH=00;
01H,检测字符准备好,入口参数AH=01;
02H,取当前转换键状态,入口参数AH=02.
于是这里的程序树就变成了:首先CON设备命令入口地址标首址->SI(0037H),然后跳转到了0638H,然后开始设备中断例程程序。首先是保存各种寄存器内容。然后就是进入04H,05H,07H,08/09H。四个功能程序过程入口。
04H:读键盘输入。从DOS内核请求标题传送过来的内存缓冲区指针及要读的字符数,再标准设备驱动的主控程序中,分别送至ES:DI及CX寄存器,然后执行本程序,从键盘读入CX个字符到ES:DI指定的内存缓冲区。如果控制台缓冲区布控(5D0H用来存放扫描码),则先读控制台缓冲区,再读键盘。结合这个功能解读在看源代码,就一目了然了。如果是组合键,则要进行两次读写操作:第一次将第二字节的扫描码送入控制台缓冲区,并将其第一字节的00H写入内存缓冲区;在进行第二次读,读控制台缓冲区到AL再写内存缓冲区。如此反复读,直到CX个字符为止。结束时填写返回状态字后返回。从这个过程来看,完全就是C的典型思路。可见,DOS系统的编写,实际上是程序语言工具的局限性带来的产物,后期20世纪产生的各个操作系统内核,都用C来编写后,工具不同,得以扩展,运用到了今天。
注:微型机的键盘含有微处理器,用来处理键入的字符。都有两个码:扫描码和ASCII码,键入的字符首先保存在内存0040:001E-003DH的键盘缓冲区……
对于汇编来说,除了语言功能外,主要就是跳转地址(寄存器操作)与读写(缓冲区)和检验(位运算)。而C的功能其实也和这个一样,只不过对人类更加友好了一些。代之以函数调用、调用接口函数、判断语句。
于是汇编程序入口SI之后,就是读键盘模块04、非破坏性读05、刷新缓冲区模块07、写/写且校验模块08/09。分别对应入口地址:6B2-6DC,6DD-72A,72B-742,743-74F。
辅助设备驱动程序实现原理:支持的是串行通讯设备,包括逻辑名为AUX(COM1),COM2,COM3,COM4的辅助设备。这是Inter 8250芯片。套路都是一样的,也是有其自己的程序命令功能表:
04H,从指定串行口接收相应数目数据送至内存缓冲区,758-77E
05H,不等待非破坏性读串行口,77F-7A1
07H,刷新相应设备的输入缓冲区,7B9-7C1
08/09H,把内存缓冲区中指定字节送到串行通讯口,7C2-7DB
0AH,输出串行通讯口状态信息,7A2-7B0H
中断14H功能:00,初始化串行口;01H,发送一字符到串行口;02H,从串行口接收一字符;03H,取串行口状态。
从程序中断例程进入到了辅助设备列表1-4之后,就有了四个不同的程序入口。首先需要的是保存SI,AX.然后得到设备号00H->AL.然后找到命令入口地址首地址->SI,603-66C.然后就是分流到上面的04-0A的五个命令码对应的处理程序。
从操作原理上说,与键盘是相似的,都是CX个数据到ES:DI指定的内存缓冲区,由于从串行口读数据一次读一个位,相应的在内存是一个位占一个字节。然后就是检测缓冲区与读写。
在阅读控制台设备驱动和辅助设备驱动的时候,对汇编有了更多的认识和细致的体会.它与面向过程的C最大的不同,体现在跳转和初始化的语法上,是直接面对机器操作(利用指令系统).也就是汇编非常接近机器,是一种指令系统的复杂操作.它在选择功能分支的时候,依靠的直接是找到入口.而C的调用子程序或者函数,这个工作是依靠操作系统来完成的.级别不同.如果以顺序的思路来看待汇编写成的大型程序,其实利用跳转和功能入口,也能形成线形联系,只不过需要地址跳转.在这个过程中,中断这一很重要的概念得以体现.
控制台驱动程序功能表,就分为4个功能:
04H,682-6DC,从键盘读入指定数目的字符到内存缓冲区
05H,6DD-72A,不等待非破坏性读
07H,72B-742,刷新控制台缓冲区和键盘缓冲区
08H,743-74H,将内存缓冲区中指定数目输出到屏幕
同时还存在一个16H中断:
00H,读下一个键盘字符,入口参数AH=00;
01H,检测字符准备好,入口参数AH=01;
02H,取当前转换键状态,入口参数AH=02.
于是这里的程序树就变成了:首先CON设备命令入口地址标首址->SI(0037H),然后跳转到了0638H,然后开始设备中断例程程序。首先是保存各种寄存器内容。然后就是进入04H,05H,07H,08/09H。四个功能程序过程入口。
04H:读键盘输入。从DOS内核请求标题传送过来的内存缓冲区指针及要读的字符数,再标准设备驱动的主控程序中,分别送至ES:DI及CX寄存器,然后执行本程序,从键盘读入CX个字符到ES:DI指定的内存缓冲区。如果控制台缓冲区布控(5D0H用来存放扫描码),则先读控制台缓冲区,再读键盘。结合这个功能解读在看源代码,就一目了然了。如果是组合键,则要进行两次读写操作:第一次将第二字节的扫描码送入控制台缓冲区,并将其第一字节的00H写入内存缓冲区;在进行第二次读,读控制台缓冲区到AL再写内存缓冲区。如此反复读,直到CX个字符为止。结束时填写返回状态字后返回。从这个过程来看,完全就是C的典型思路。可见,DOS系统的编写,实际上是程序语言工具的局限性带来的产物,后期20世纪产生的各个操作系统内核,都用C来编写后,工具不同,得以扩展,运用到了今天。
注:微型机的键盘含有微处理器,用来处理键入的字符。都有两个码:扫描码和ASCII码,键入的字符首先保存在内存0040:001E-003DH的键盘缓冲区……
对于汇编来说,除了语言功能外,主要就是跳转地址(寄存器操作)与读写(缓冲区)和检验(位运算)。而C的功能其实也和这个一样,只不过对人类更加友好了一些。代之以函数调用、调用接口函数、判断语句。
于是汇编程序入口SI之后,就是读键盘模块04、非破坏性读05、刷新缓冲区模块07、写/写且校验模块08/09。分别对应入口地址:6B2-6DC,6DD-72A,72B-742,743-74F。
辅助设备驱动程序实现原理:支持的是串行通讯设备,包括逻辑名为AUX(COM1),COM2,COM3,COM4的辅助设备。这是Inter 8250芯片。套路都是一样的,也是有其自己的程序命令功能表:
04H,从指定串行口接收相应数目数据送至内存缓冲区,758-77E
05H,不等待非破坏性读串行口,77F-7A1
07H,刷新相应设备的输入缓冲区,7B9-7C1
08/09H,把内存缓冲区中指定字节送到串行通讯口,7C2-7DB
0AH,输出串行通讯口状态信息,7A2-7B0H
中断14H功能:00,初始化串行口;01H,发送一字符到串行口;02H,从串行口接收一字符;03H,取串行口状态。
从程序中断例程进入到了辅助设备列表1-4之后,就有了四个不同的程序入口。首先需要的是保存SI,AX.然后得到设备号00H->AL.然后找到命令入口地址首地址->SI,603-66C.然后就是分流到上面的04-0A的五个命令码对应的处理程序。
从操作原理上说,与键盘是相似的,都是CX个数据到ES:DI指定的内存缓冲区,由于从串行口读数据一次读一个位,相应的在内存是一个位占一个字节。然后就是检测缓冲区与读写。
✋热门推荐