程序中关于变量的引用,和函数的调用

发布者:Turquoise最新更新时间:2015-01-27 来源: laogu关键字:程序  变量  函数 手机看文章 扫描二维码
随时随地手机看文章

程序中关于变量的引用,和函数的调用

cseg segment
 assume cs:cseg,ds:cseg
 org 100
start:
 mov bx,word ptr aaa
virus_start:
 call get_start
 mov ah,4ch
 int 21h
get_start:
 mov ax,offset virus_start
 ret

aaa db ''abcd'',0
cseg ends
end start

上面的程序进行反汇编之后。
-u
13E7:0064 8B1E7300      MOV     BX,[0073]
13E7:0068 E80400        CALL    006F
13E7:006B B44C          MOV     AH,4C
13E7:006D CD21          INT     21
13E7:006F B86800        MOV     AX,0068
13E7:0072 C3            RET
13E7:0073 61            DB      61
13E7:0074 62            DB      62
13E7:0075 63            DB      63
13E7:0076 64            DB      64

可以看到程序引用变量aaa的时候,是通过绝对地址进行引用的。
13E7:0064 8B1E7300      MOV     BX,[0073]
8b1e 是操作码,7300是操作数。可以知道操作数是一个绝对地址。

在进行函数调用的时候
13E7:0068 E80400        CALL    006F
你可能会以为call 006f是通过绝对地址来进行函数的调用的。
可是这是反汇编之后的,是经过加工了的。
我们要看的是操作码和操作数,在该指令中
操作码是e8,操作数是0400(也就是4),可见是相对于
13E7:006B B44C          MOV     AH,4C(call 006f的下一条语句)的指令偏移。


这些知识都是写COM之类病毒的最基本的知识

 

附:函数的调用分为near,short,far.

short最惨,被调用的函数和调用点只能有128字节的偏移量。

near可以达到64k(可以调用本段的函数),随意对于COM足够用了。

far则可以调用任意段的函数。

关键字:程序  变量  函数 引用地址:程序中关于变量的引用,和函数的调用

上一篇:如何优化C语言代码
下一篇:PC与单片机USB(D12)数据通讯过程描述

推荐阅读最新更新时间:2024-03-16 13:52

C程序设计的常用算法
  算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。   一、计数、求和、求阶乘等简单算法   此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。   例:用随机函数产生100个 范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。   本题使用数组来处理,用数组a 存放产生的确10
[单片机]
基于单片机的一种函数发生器的设计
1 引 言   在自动控制系统设计及调试过程中,不同频率的正弦波、三角波和方波常作为信号源,应用十分方便。过去常由分立元件及集成运放构成振荡器,后来出现的ICL8038其最高频率仅能达到100kHz。而MAX038芯片性能更好,最高频率可达20MHz,且三种波形由同一端输出。单片机控制品质卓越,基于单片机的函数发生器运行可靠,操作方便。 2 高频信号发生器芯片MAX038简介   MAXIM公司生产的MAX038芯片是一种高频精密的函数发生器,可产生三角波、锯齿波、正弦波、方波及脉冲波,且频率及占空比的控制可独立进行。   Lin管脚电流范围在10~400μA时电路获得最佳工作性能。输出波形的选择由逻辑地址引脚A0和A1的组合来决定
[单片机]
基于单片机的一种<font color='red'>函数</font>发生器的设计
MPLAB X 设置用户程序代码偏移
当编写用户代码时(用boot来引导启动),我们都需要设置用户代码的偏移。 例如:boot 引导用户代码的入口地址为0x2000。 下面我们需要把用户代码下载到0x2000地址处(设置如下图所示)。 设置后的编译结果: 可以看到代码的入口地址变成了0x2000,低优先级中断入口变成了0x2018。
[单片机]
MPLAB X 设置用户<font color='red'>程序</font>代码偏移
PIC24F之EEPROM读写中断事件处理函数要点及说明
/*---------------------------------------------------------------------- P IC 24F之EEPROM读写中断事件处理函数要点及说明 注意: 这是一个通用的I2C/SMBUS通讯中断处理程序 对于EEPROM来讲,从机后面需要跟EEPROM需要读写的地址(I2CRegs.RWAddr) 对于SMBUS来说,从机后面需要跟SMBUS需要的命令(I2CRegs.RWAddr改为I2CRegs.CMD即可) 由于PIC24F的I2C不太标准,I2C1STAT被搞得很倒塌!!!一点都没I2C的 大家闺秀 的样子~~~ 不过它的STOP还能激活中断确实比LPCARM
[单片机]
AVR单片机驱动无源蜂鸣器C程序
/* 内部1 M晶振。 定时器实险,周期信号驱动无源蜂鸣器,些实验基于定时器的CTC模式,由硬件产生频率信号。 程序中实现单一频率的周期性提示音。 程序采用单任务方式,软件延时。 */ #include iom16v.h /*延时函数*/ void delay_ms(unsigned char i) { unsigned char a, b; for (a = 1; a i; a++) { for (b = 1; b; b++) { ; } } } void main(void) { unsigned char i; DDRA = 0x00; /*方向输入*/ PORTA = 0xFF; /*打开上拉*/
[单片机]
基于STC15F101W单片机调光灯/按键状态机源程序
基于STC15F101W调光灯,按键状态机,电脑USB供电,STC15F101W单片机驱动 单片机源程序如下: /********************************************** 程序名:LED程序 产品代号:LED调光台灯 硬件平台:STC15F100W (只有T0和T2两个定时器 ) 当前版本:1.0 编写人:@Richard 说明: ①适用于Led驱动板 ②可通过DIM端控制灯泡亮度与开关 ③有四个指示灯,共阳 命名规则:输出后缀_dr、输入后缀_sr、标志位后缀_flag (dr代表drive驱动、sr代表senso
[单片机]
基于STC15F101W单片机调光灯/按键状态机源<font color='red'>程序</font>
一种基于单片机的函数发生器的设计实现
1引言 在自动控制系统设计及调试过程中,不同频率的正弦波、三角波和方波常作为信号源,应用十分方便。过去常由分立元件及集成运放构成振荡器,后来出现的ICL8038其最高频率仅能达到100kHz。而MAX038芯片性能更好,最高频率可达20MHz,且三种波形由同一端输出。单片机控制品质卓越,基于单片机的函数发生器运行可靠,操作方便。 2高频信号发生器芯片MAX038简介 MAXIM公司生产的MAX038芯片是一种高频精密的函数发生器,可产生三角波、锯齿波、正弦波、方波及脉冲波,且频率及占空比的控制可独立进行。 Lin管脚电流范围在10~400μA时电路获得最佳工作性能。输出波形的选择由逻辑地址引脚A0和A1的组合来决定:A1A
[单片机]
一种基于单片机的<font color='red'>函数</font>发生器的设计实现
msp430f149单片机串口C程序
msp430f149单片机简介: MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。 msp430f149是基于闪存或 ROM 的超低功耗 MCU,提供 8MIPS,工作电压为 1.8V - 3.6V,具有高达 60KB 的闪存和各种高性能模拟及智能数字外设。 超低功耗低至: 0.1μA RAM (保持模式) 0.7μA (实时时钟模式) 200μA/MIPS (工作模式) 在 6μs 之内快速从待机模式唤醒 器件参数: 闪存选项:1KB – 60KB ROM 选项:1KB – 16KB R
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved