16位汇编 多文件 intel汇编 编译器masm5.0 调用子程序库即静态库的自定义函数 WINDOWS
;以下是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的更多相关文章
- 解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题
解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题 在原来项目中导入全志v3相机的 ...
- bmp文件格式中rgb555与rgb888之间的转换,24位与16位位图的转换
今日,有同事问我.rgb555模式下的位图文件的格式问题,于是花了一下午的时间通过推測与測试,分析出了例如以下bmp文件在rgb555模式下的文件存储规律: 1:bmp文件的文件信息头中的biBitC ...
- 链接(extern、static关键词\头文件\静态库\共享库)
原文链接:http://www.orlion.ga/781/ 一. 多目标文件的链接 假设有两个文件:stack.c: /* stack.c */ char stack[512]; int top = ...
- iOS 创建静态库文件时去掉当中的Symbols
在project中创建静态库文件时.默认会将一些Symbols加到静态库文件里.这样做有两个缺点: 1.假设引用静态库文件的project中发生了bug.就会直接跳转到静态库的源代码. 也许有人问:静 ...
- gcc编译器创建和使用静态库、动态库
http://www.cnblogs.com/dyllove98/archive/2013/06/25/3155599.html 目录树结构: test/include/hello.h #ifdef ...
- Linux编译多个不同目录下的文件以及静态库、动态库的使用
先看两篇博文,作为基础知识.如果对C/C++编译链接过程都了解的话,可以跳过不看. http://www.firedragonpzy.com.cn/index.php/archives/2556 ht ...
- C/C++ 关于生成静态库(lib)/动态库(dll)文件如何使用(基于windows基础篇)
1. 首先,如何制作一个静态库(lib)? 额, 对于静态库,我们知道,里头是不应该有Main函数,它只是一个配合文件.之所以称之为lib静态库,其实就是指,我们需要用到lib里头的函数时,我们才会去 ...
- plist文件无法打包进.a静态库中
问题: 之前一直在做静态库的编写与维护,也一直知道静态库的图片资源是没办法打进.a中的.可是突然有个想法.由于有非常多參数的配置是在一个plist文件里的.尽管也知道这是一个plist文件,可是想想和 ...
- 生成静态库.a文件和动态库.so文件
转载来源:https://www.cnblogs.com/hookjc/ 静态库 在linux环境中, 使用ar命令创建静态库文件.如下是命令的选项: d -----从指定的静态库文件中删除文件 m ...
随机推荐
- .net 实现上传文件分割,断点续传上传文件
一 介绍 断点续传搜索大部分都是下载的断点续传,涉及到HTTP协议1.1的Range和Content-Range头. 来个简单的介绍 所谓断点续传,也就是要从文件已经下载的地方开始继续下载.在以前版本 ...
- location对象
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- git操作日志
切换分支 git checkout plugin 更新文件 git pull origin master 合并分支 主分支合并到分支 git checkout dev_2 git merge mast ...
- VS C#开发中WinForm中Setting.settings的作用
.定义 在Settings.settings文件中定义配置字段.把作用范围定义为:User则运行时可更改,Applicatiion则运行时不可更改.可以使用数据网格视图,很方便: .读取配置值 tex ...
- Redis在windows下安装和PHP中使用
1.redis简介redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...
- [Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?
首先,问题是如何出现的? 晚上复查代码,发现一个activity没有调用自己的ondestroy方法 我表示非常的费解,于是我检查了下代码. 发现再finish代码之后接了如下代码 finish(); ...
- 为什么重写equals时必须重写hashCode方法?
原文地址:http://www.cnblogs.com/shenliang123/archive/2012/04/16/2452206.html 首先我们先来看下String类的源码:可以发现Stri ...
- java验证码刷新
可以使用a标签,这样省事 <img id="code_img" src="validcode" alt="登录验证码" /> & ...
- JS编写全选,复选按钮
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- AutoCad2008 部分快捷键
编组开关: Ctrl+Shift+A 查看扩展属性命令: xdlist 加载新的菜单栏命令:menu