• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >汇编语言 > 汇编源码系列之hdr

汇编源码系列之hdr

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了索尼hdr pj系列,hdr是什么意思,hdr,手机照相hdr,尼康d810hdr等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
</div>

这个都是过去DOS时代的汇编源码,虽然已经过去了,但是对于学习汇编还是有帮助的,汇编语言只是程序员一门基础语言,大多人掌握即可,不一定要深入研究.......

    PAGE  60, 132
TITLE  HDR   22-Feb-85    Device Driver Header          |
;-----------------------------------------------------------------------|
;                                    |
;    Device Driver Library                      |
;        Device Driver Header                  |
;                                    |
;-----------------------------------------------------------------------|
;    REVISION HISTORY                        |
;                                    |
; Number  DD-MMM-YY       WHO          WHY       |
;-------|---------------|-----------------------|-----------------------|
; 0.0  |  22-Feb-85  | Frank Whaley     | Initial Release    |
;-----------------------------------------------------------------------|
    PAGE
;-----------------------------------------------------------------------|
;    Equates                             |
;-----------------------------------------------------------------------|
StkSiz EQU   2048          ; local stack size
    PAGE
;-----------------------------------------------------------------------|
;    Group Selection                         |
;-----------------------------------------------------------------------|
PGROUP Group  PROG, TAIL
DGROUP Group  DATA, DTAIL
PROG  Segment Para Public 'PROG'
PROG  EndS
DATA  Segment Para Public 'DATA'   ; define first
DATA  EndS
    Assume CS:PROG, DS:DATA, ES:DATA, SS:DATA
    PAGE
;-----------------------------------------------------------------------|
;    Program Segment                         |
;-----------------------------------------------------------------------|
PROG  Segment Para Public 'PROG'
    Extrn  Init:Near,   MediaChe:Near, BuildBPB:Near
    Extrn  IoCtlIn:Near,  Input:Near,   ndInput:Near
    Extrn  InputSta:Near, InputFlu:Near, Output:Near
    Extrn  OutVerif:Near, OutStatu:Near, OutFlush:Near
    Extrn  IoCtlOut:Near, DevOpen:Near,  DevClose:Near
    Extrn  RemMedia:Near
    ORG   0
HDR   Proc  Far
;-----------------------------------------------------------------------|
;    Device Header                          |
;-----------------------------------------------------------------------|
    DD   -1           ; -> next device
;    DW   theAttribute      ; you must enter attribute field
    DW   8000H          ; character only device
    DW   Strategy        ; -> device strategy
    DW   Interrupt        ; -> device interrupt
;    DB   theName         ; you must put something here
    DB   "MON   "       ; mono
;-----------------------------------------------------------------------|
;    Code Segment Variables                     |
;-----------------------------------------------------------------------|
RHptr  DD   (?)           ; -> Request Header
ssEntry DW   (?)           ; entry SS
spEntry DW   (?)           ; entry SP
    PAGE
;-----------------------------------------------------------------------|
;    Device Strategy                         |
;                                    |
;    ENTRY : ES:BX -> Request Header                 |
;                                    |
;    EXIT : Request Header copied to ReqHdr             |
;        all registers preserved                 |
;                                    |
;-----------------------------------------------------------------------|
Strategy:
    MOV   Word Ptr CS:RHptr,BX  ; save request header ptr
    MOV   Word Ptr CS:RHptr + 2,ES
    PUSHF              ; (+1) save the world
    PUSH  ES           ; (+2)
    PUSH  DS           ; (+3)
    PUSH  SI           ; (+4)
    PUSH  DI           ; (+5)
    PUSH  CX           ; (+6)
    PUSH  BX           ; (+7)
    MOV   SI,BX
    MOV   BX,ES
    MOV   DS,BX          ; DS:SI -> Request Header
    MOV   BX,Offset PGROUP:TAIL
    MOV   CL,4
    SHR   BX,CL
    MOV   CX,CS
    ADD   BX,CX
    MOV   ES,BX
    MOV   DI,Offset DGROUP:ReqHdr ; ES:DI -> ReqHdr
    CLD
    XOR   CH,CH
    MOV   CL,[SI]
    REP   MOVSB          ; copy Request Header
    POP   BX           ; (+6) restore
    POP   CX           ; (+5)
    POP   DI           ; (+4)
    POP   SI           ; (+3)
    POP   DS           ; (+2)
    POP   ES           ; (+1)
    POPF              ; (+0)
    RET
    PAGE
;-----------------------------------------------------------------------|
;    Device Interrupt                        |
;                                    |
;    ENTRY : anything                        |
;                                    |
;    EXIT : all registers preserved                 |
;                                    |
;-----------------------------------------------------------------------|
Interrupt:
    PUSH  DS           ; (+1) save the world
    PUSH  ES           ; (+2)
    PUSH  AX           ; (+3)
    PUSH  BX           ; (+4)
    PUSH  CX           ; (+5)
    PUSH  DX           ; (+6)
    PUSH  SI           ; (+7)
    PUSH  DI           ; (+8)
    PUSH  BP           ; (+9)
    MOV   CS:ssEntry,SS      ; save entry SS
    MOV   CS:spEntry,SP      ; and SP
    MOV   AX,Offset PGROUP:TAIL  ; set our DS, SS, BP, and SP
    MOV   CL,4
    SHR   AX,CL
    MOV   CX,CS
    ADD   AX,CX
    MOV   BX,Offset DGROUP:MyStack
    MOV   DS,AX
    MOV   ES,AX
    MOV   SS,AX
    MOV   SP,BX
    MOV   BP,BX
    ;
    ; call our function
    ;
    MOV   AL,ReqHdr + 2      ; AL = Command Code
    SHL   AL,1
    CBW
    MOV   SI,Offset DGROUP:FuncTab
    ADD   SI,AX
    CALL  Word Ptr [SI]
    ;
    ; copy back Request Header
    ;
    LES   DI,RHptr        

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 汇编源码系列之hdr

相关文章

  • 2017-06-17程序直接控制I/O方式
  • 2017-06-28汇编源码系列之hdr
  • 2017-06-178086指令系统
  • 2017-06-28汇编教程:汇编语言编程实例
  • 2017-06-28汇编源码系列之clear
  • 2017-06-28汇编教程之菜单
  • 2017-06-17存储单元的地址和内容
  • 2017-06-28汇编语言的艺术-准备工作(二)
  • 2017-06-17比较指令 CMP
  • 2017-06-1780x86寄存器组

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 汇编教程之树型视图控件
    • 80386的中断和异常
    • 建立汇编语言的工作环境
    • 汇编教程之创建简单的窗口
    • 汇编源码系列之ctrladel
    • 汇编教程:汇编语言编程实例
    • 汇编xor小妙用
    • 子程序设计
    • Casl汇编语言辅导
    • 几种基本的逻辑运算

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有