;t8-10.txt
vector=16h
.model small
.stack
.data
mess label byte
mess1 db 4 dup (0)
db ':'
mess2 db 4 dup (0)
db 0dh,0ah,24h
.code
extrn bhascs:far
start :mov ax,@data
mov ds,ax
mov ah,35h
mov al,vector
int 21h
push bx
mov ax,es
mov dx,offset mess1
call far ptr bhascs
pop ax
mo...
- [e56004474] 7.以上做完,用LordPE修改好入口点,其次“目录表”中的“输入表”地址修正好。以上做好,基本就没 11/23 10:06
- [e56004474] 6.ImportREC修复输入表时,如果其中一条函数无法正常识别,fix Dump出来的文件,需要 11/23 10:02
- [e56004474] 5.浏览时图片显示了一小部分,请点击下图片,会全部正常显示。 11/23 09:57
- [游客] 我的理解是书上印错了 07/08 15:56
- [e56004474] STDCALL调用 方式,把要导出的过程名修改为以下格式: _name@nn 06/10 14:48
- [e56004474] option casemap:none 指明大小写 是否敏感. (《啄石成玉》第3章才有说明) 03/23 17:34
- [e56004474] 编译链接指令如下 ML.EXE /C /COFF /I C:\Masm615\INCLUDE 1 03/17 19:47
- [starrynight] 加油! 10/09 17:31
- [fpamc] 串个门儿~ 08/15 06:52
- [chinatree] 没看懂你最后一句再说什么。 07/23 00:07
[2012-06-03 20:35] 子程序库与主程序的结合
阅读全文 |
评论次数(1) |
浏览次数(638) |
所属类型(综合研究)
[2012-06-03 20:15] masm 建立库文件
masm 建立自己的库文件2007-12-24 16:137.6.2 建立库文件举例
lib.exe的使用
命令项的解释:
选项 含义
+name 向库文件中加一个新的目标文件
-name 从库文件中删除一个指定的目标文件
-+name 用新的目标文件替换掉库文件中原有的目标文件
*name 拷贝出指定的目标文件
-*name 从库文件中移出指定的目标文件
假设现有目标文件sub1.obj、sub2.obj和sub3.obj,要用它们建立库文件mylib.lib。可用下列方法来建立该库文件:
方法1:所有目标文件都准备好了,可一次性把它们加入到库...
lib.exe的使用
命令项的解释:
选项 含义
+name 向库文件中加一个新的目标文件
-name 从库文件中删除一个指定的目标文件
-+name 用新的目标文件替换掉库文件中原有的目标文件
*name 拷贝出指定的目标文件
-*name 从库文件中移出指定的目标文件
假设现有目标文件sub1.obj、sub2.obj和sub3.obj,要用它们建立库文件mylib.lib。可用下列方法来建立该库文件:
方法1:所有目标文件都准备好了,可一次性把它们加入到库...
阅读全文 |
评论次数(0) |
浏览次数(296) |
所属类型(综合研究)
[2012-06-03 15:36] 模块间的信息传递2
例6:(【80x86汇编语言程序设计教程(杨季文)】)page:296
=======================================================
;t8-9.asm
extrn getdate:far
public mess,mess1,mess2,year,month,day
dseg segment public
mess db 'current date is'
mess1 db 2 dup (?)
db '-'
mess2 db 2 dup (?)
db 0dh,0ah,'$'
year dw ?
month db ?
d...
=======================================================
;t8-9.asm
extrn getdate:far
public mess,mess1,mess2,year,month,day
dseg segment public
mess db 'current date is'
mess1 db 2 dup (?)
db '-'
mess2 db 2 dup (?)
db 0dh,0ah,'$'
year dw ?
month db ?
d...
阅读全文 |
评论次数(0) |
浏览次数(253) |
所属类型(综合研究)
[2012-06-03 13:10] 模块间的信息传递
;t8-8.asm
dseg segment public 'data'
mess db 'dos version is'
mess1 db ?
db '.'
mess2 db 2 dup (?)
db 0dh,0ah,'$'
verm db 0
vern db 0
dseg ends
public verm,vern
extrn getver:far,todasc:far
cseg segment public 'code'
assume cs:cseg,ds:dseg
start:
mov ax,dseg
mov ds,ax ...
dseg segment public 'data'
mess db 'dos version is'
mess1 db ?
db '.'
mess2 db 2 dup (?)
db 0dh,0ah,'$'
verm db 0
vern db 0
dseg ends
public verm,vern
extrn getver:far,todasc:far
cseg segment public 'code'
assume cs:cseg,ds:dseg
start:
mov ax,dseg
mov ds,ax ...
阅读全文 |
评论次数(0) |
浏览次数(269) |
所属类型(综合研究)
[2012-06-02 10:50] 模块间的转移3
一个段最小为16字节。
注意call 0b71:0008 的段改变了。‘模块间的转移’前2篇的图,有张图的call 的段与偏移没有改变,我认为是 由于最终组合在一起的源程序太小了,t8-7与和t8-7ma一同个段内,所以call 的段与偏移没有改变.
这张图 的t8-7mb开始处为0b7b:0018,call 0b71:0008 的段改变了,是因为一个段最小为16字节,且它们不属于同个段,改变是正常的。
那为什么模块间的转移’前2篇的其中有张图,不属于同个段,但是
call的段地址并没有改变,也是因为一个段最小为16字节,目标在同个最小段内。 它们虽然理论上不是同个段组合,但是却在...
注意call 0b71:0008 的段改变了。‘模块间的转移’前2篇的图,有张图的call 的段与偏移没有改变,我认为是 由于最终组合在一起的源程序太小了,t8-7与和t8-7ma一同个段内,所以call 的段与偏移没有改变.
这张图 的t8-7mb开始处为0b7b:0018,call 0b71:0008 的段改变了,是因为一个段最小为16字节,且它们不属于同个段,改变是正常的。
那为什么模块间的转移’前2篇的其中有张图,不属于同个段,但是
call的段地址并没有改变,也是因为一个段最小为16字节,目标在同个最小段内。 它们虽然理论上不是同个段组合,但是却在...
阅读全文 |
评论次数(0) |
浏览次数(256) |
所属类型(综合研究)
[2012-06-02 10:03] 模块间的转移2
上图2
由于只能放一张图,只能分开发了。...
由于只能放一张图,只能分开发了。...
阅读全文 |
评论次数(1) |
浏览次数(592) |
所属类型(综合研究)
[2012-06-02 10:01] 模块间的转移
上图...
阅读全文 |
评论次数(0) |
浏览次数(273) |
所属类型(综合研究)
[2012-06-01 15:42] 简化定义下的段名
简化定义下的段名:
.code 段名TEXT
.fardata 段名far_data
.data 段名DATA
例子:
.model large
.fardata ;←——————
a equ 2
mess db 'hello,word!',0dh,0ah,24h
.stack
.code
start:
mov ax,@data ;←——————
mov ds,ax
lea dx,mess
mov ah,9
int 21h
nop
mov ah,4ch
int 21h
end start
C:\>debug t1.e...
.code 段名TEXT
.fardata 段名far_data
.data 段名DATA
例子:
.model large
.fardata ;←——————
a equ 2
mess db 'hello,word!',0dh,0ah,24h
.stack
.code
start:
mov ax,@data ;←——————
mov ds,ax
lea dx,mess
mov ah,9
int 21h
nop
mov ah,4ch
int 21h
end start
C:\>debug t1.e...
阅读全文 |
评论次数(0) |
浏览次数(274) |
所属类型(综合研究)
[2012-06-01 12:39] offset 段名
C:\>debug t1.exe
-r
AX=0000 BX=0000 CX=00A4 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B70 ES=0B70 SS=0B80 CS=0B87 IP=0000 NV UP EI PL NZ NA PO NC
0B87:0000 B81500 MOV AX,0015
-u
0B87:0000 B81500 MOV AX,0015
0B87:0003 8ED8 MOV DS,AX
0B87:0005 ...
-r
AX=0000 BX=0000 CX=00A4 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B70 ES=0B70 SS=0B80 CS=0B87 IP=0000 NV UP EI PL NZ NA PO NC
0B87:0000 B81500 MOV AX,0015
-u
0B87:0000 B81500 MOV AX,0015
0B87:0003 8ED8 MOV DS,AX
0B87:0005 ...
阅读全文 |
评论次数(0) |
浏览次数(291) |
所属类型(综合研究)
[2012-06-01 12:23] 段的完整定义(组合)
段的完整定义
一般的格式:
段名 segment [定位类型] [组合类型] ['类别']
...
段名 edns
=============================================
段名 [定位类型] [组合类型]相同,['类别']不同时,编译时提示'error A2024: Segment parameters are changed'。
;----------------------------------
段名 [定位类型] [组合类型]相同时,例子如下:
(data段和data_1段组合)
data segment public...
一般的格式:
段名 segment [定位类型] [组合类型] ['类别']
...
段名 edns
=============================================
段名 [定位类型] [组合类型]相同,['类别']不同时,编译时提示'error A2024: Segment parameters are changed'。
;----------------------------------
段名 [定位类型] [组合类型]相同时,例子如下:
(data段和data_1段组合)
data segment public...
阅读全文 |
评论次数(0) |
浏览次数(275) |
所属类型(综合研究)
页码数(1):
1