;以下是16位汇编 创建静态库,并调用静态库中的函数

;多文件汇编格式

;编译方法(此处用的是masm 5.0,如果是其他的编译器,有可能不能编译)

;第一种,编译方法

;1、masm main.asm  生成.obj文件

;2、masm lib.asm  生成.obj文件

;3、link main.obj lib.obj 生成.exe文件

;第二种,编译方法

;1、masm main.asm  生成.obj文件

;2、masm 16lib.asm  生成.obj文件

;3、lib 16lib.lib 16lib.obj  由.obj文件生成.lib文件,即静态库文件,可以做为函数库使用

;4、link main.obj  16lib.lib  由.obj .lib两个文件生成.exe文件

;=======================================

;(main.asm)

.model small

.stack 100h

.386

.data

  Msg db "in my world! you know?",0

.code

  extrn int21h_40h:far  ;引用外部函数,注意:masm5.0用的是extrn ,少一个e字符

main PROC

  mov ax,@data

  mov ds,ax

  push di

  mov di,offset Msg

  call int21h_40h

  pop di

  mov ax,4c00h

  int 21h main

  ENDP

END main

;==================================

;(16lib.asm)

.model small

.stack .data

.code

  public int21h_40h ;定义外部函数

;********MS-DOS 中断 int 21h功能调用***********************

;--------int 21h 功能号 40h事例-------------

;说明:在标准输出上显示字符串

;输入参数:di = 字符串地址

;输出参数:无

int21h_40h proc far

  xor cx,cx

  mov dx,di ;在循环前保存参数,由于后面循环会改变di

        ;此处也是功能 40h 的参数

L1:

  ;计算字符串长度

  cmp byte ptr[di],0

  je L2

   inc cx

  inc di

  jmp L1

L2:

  ;显示字符串到标准输出设备上

  mov ah,40h

  mov bx,1

   int 21h

   ret

int21h_40h endp

end

16位汇编 多文件 intel汇编 编译器masm5.0 调用子程序库即静态库的自定义函数 WINDOWS的更多相关文章

  1. 解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题

    解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题 在原来项目中导入全志v3相机的 ...

  2. bmp文件格式中rgb555与rgb888之间的转换,24位与16位位图的转换

    今日,有同事问我.rgb555模式下的位图文件的格式问题,于是花了一下午的时间通过推測与測试,分析出了例如以下bmp文件在rgb555模式下的文件存储规律: 1:bmp文件的文件信息头中的biBitC ...

  3. 链接(extern、static关键词\头文件\静态库\共享库)

    原文链接:http://www.orlion.ga/781/ 一. 多目标文件的链接 假设有两个文件:stack.c: /* stack.c */ char stack[512]; int top = ...

  4. iOS 创建静态库文件时去掉当中的Symbols

    在project中创建静态库文件时.默认会将一些Symbols加到静态库文件里.这样做有两个缺点: 1.假设引用静态库文件的project中发生了bug.就会直接跳转到静态库的源代码. 也许有人问:静 ...

  5. gcc编译器创建和使用静态库、动态库

    http://www.cnblogs.com/dyllove98/archive/2013/06/25/3155599.html 目录树结构: test/include/hello.h #ifdef ...

  6. Linux编译多个不同目录下的文件以及静态库、动态库的使用

    先看两篇博文,作为基础知识.如果对C/C++编译链接过程都了解的话,可以跳过不看. http://www.firedragonpzy.com.cn/index.php/archives/2556 ht ...

  7. C/C++ 关于生成静态库(lib)/动态库(dll)文件如何使用(基于windows基础篇)

    1. 首先,如何制作一个静态库(lib)? 额, 对于静态库,我们知道,里头是不应该有Main函数,它只是一个配合文件.之所以称之为lib静态库,其实就是指,我们需要用到lib里头的函数时,我们才会去 ...

  8. plist文件无法打包进.a静态库中

    问题: 之前一直在做静态库的编写与维护,也一直知道静态库的图片资源是没办法打进.a中的.可是突然有个想法.由于有非常多參数的配置是在一个plist文件里的.尽管也知道这是一个plist文件,可是想想和 ...

  9. 生成静态库.a文件和动态库.so文件

    转载来源:https://www.cnblogs.com/hookjc/ 静态库 在linux环境中, 使用ar命令创建静态库文件.如下是命令的选项: d -----从指定的静态库文件中删除文件 m ...

随机推荐

  1. 刷CM7固件 乐padA1-07专用固件

    --------------------------------------------------------------------------------               前几天在版 ...

  2. NSDate管理日期和时间

    //时间初始化        NSDate *date = [[NSDate alloc]initWithString:@"2010-01-01 23:59:59 +0900"]; ...

  3. js 中闭包的概念

  4. liToSpan

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  5. AspNet MVC与T4,我定制的视图模板

    一. 遇到的问题 文章开头部分想先说一下自己的困惑,在用AspNet MVC时,完成Action的编写,然后添加一个视图,这个时候弹出一个添加视图的选项窗口,如下: 很熟悉吧,继续上面说的,我添加一个 ...

  6. visual foxpro命令

    根据条件查看已打开dbf表单的记录----LIST ALL FIELDS FOR =''   最后按一下enter键

  7. 安装android

    http://www.oschina.net/question/1463998_220998 http://www.cnblogs.com/zoupeiyang/p/4034517.html

  8. python 面向对象-笔记

    1.如何创建类 class 类名: pass class bar: pass 2.创建方法 构造方法,__init__(self,arg) obj = 类('a1') 普通方法 obj = 类(‘xx ...

  9. easyui的getRows和appendRow方法使用结果记录

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 引用模板中的类型时,切记要加上typename声明!!

    如题,发现实际操作中太容易忘记了,导致一些莫名其妙的编译错误,故在此记录!