指示汇编程序如何汇编的指令(程序中指令和伪指令分别是什么)

本文目录
- 程序中指令和伪指令分别是什么
- 在汇编语言程序中,用于指示汇编程序如何汇编的指令是什么
- 伪指令DB和EQU的作用是什么
- 简述伪指令与指令的区别
- 汇编程序如何运行
- 在汇编过程中不产生指令码,只用来指示汇编程序如何汇编的指令是什么
- 汇编语言程序中的什么语句不产生可执行的指令代码,只用来指示汇编程序如何编程
程序中指令和伪指令分别是什么
\x0d\x0a伪指令语句是用于指示汇编程序如何汇编源程序,所以这种语句又叫命令语句。例如源程序中的伪指令语句告诉汇编程序:该源程序如何分段,有哪些逻辑段在程序段中哪些是当前段,它们分别由哪个段寄存器指向;定义了哪些数据,存储单元是如何分配的等等。伪指令语句除定义的具体数据要生成目标代码外,其他均没有对应的目标代码。伪指令语句的这些命令功能是由汇编程序在汇编源程序时,通过执行一段程序来完成的,而不是在运行目标程序时实现的。
在汇编语言程序中,用于指示汇编程序如何汇编的指令是什么
ASM51
如果你用的windows下masm系列工具,请cmd下执行ml /?,会获取到帮助(),简单的几条 它带的参数有几十条,你可以看下。
ML.EXE 参数说明(所有参数均有大小写之分)
ML
/AT 极小记忆体模式致能(不同於 .model tiny)
/Bl filename 选译交替连结(不使用link连结而改用别的档案)
/c 仅进行组译而不连结
/Cp 区分所有名称(标名或记忆体变数名)之大小写
/Cu 将所以参数转成大小(预设值)
/Cx 区分公用和外部名称之大小写
/coff 产生coff格式的目的档
/Dsymbol 使用保留字定义文字巨集
/EP 产生预先处理的原始列表至萤幕
/F hexnum 设定堆迭大小为 hexnum
/Fb 产生限制性的可执行程式
/Fo filename 组译后指定.obj程式名称
/Fe filename 连结后指定.exe或.com程式名称
/Fl 组译后产生.lst档
/Fm 连结后产生.map档
/FPi 产生浮点运\\\\算模拟器(仅适用於混合语言)
/Fr 组译后产生.sbr程式(类似早期的功能呼叫)
/FR 组译后产生扩充.sbr程式
/Gc 指定FORTRAN或PASCAL型式的功能呼叫
/Gd 指定C语言型式的功能呼叫
/Gz 指定Stdcall型式的功能呼叫
/H number 限制外部名称的字数(预设为31字)
/Help 以ML呼叫QuickHelp
/I prthname 设定引入档(巨集档)的路径
/link options 同时指定连结时用的选项
/nologo 抑制版权(Copyright)讯息
/Sa 开启列表程式中所有有效资讯
/Sc 产生指令码的时序周期於列表档中
/Sf 加入第一阶段列表至列表程式中
/Sg 开启列表程式中组合语言产中码
/Sl width 设定列表程式每行的宽度(60~255或0)
/Sn 关闭列表程式中的符号表
/Sp length 设定列表程式每页的列数(10~255或0)
/Ss text 指定列表程式之副标题(与subtitle相同)
/St text 指定列表程式之标题(与title功能相同
/Sx 开启列表程式中错误条件
/Ta filename 指定原始档案名称(用於不为.asm而自行指定时)
/VM 致能虚拟记忆体
/W 设定警告的等级为0(与/W0功能相同)
/W 设定警告等级(0,1,2,3)
/WX 传回警告的错误码
/X 删除(忽略)引入档include环境(set include=..)
/Zf 宣告所有符号为公用的
/Zd 产生CodeView列号於目的程式
/Zi 产生CodeView资讯於目的程式
/Zm 致能option M510以便相容於MASM 5.1
/Zp 排列结构变数的起始位址於1,2,4的倍数位址
/Zs 只检查语法而不产生目的程式
/? 显示ML命令列的语法摘要
LINK.EXE 参数说明
LINK
/A:size 排列区段位址,不可用於DOS程式
/B 抑制.lib或.obj路径错误提示
/CO 加入CodeView的符号及列号
/CP:number 设定程式最大空间(单位16B)
/DO 以预设值(DOSSEG)排列区段顺序
/DS 载入资料至资料区段高位址
/E 压缩执行档,与/CO或/INC不容
/F 使远程呼叫致能与/PAC并用
/HE 显示link.exe选译项
/HI 执行时载入高记忆位址
/INC 准备加入ILINK连结
/INF 显示连结过程的讯息
/LI 加入列号与结合位址至MAP程式
/M 加入公用符号至MAP程式
/NOD 忽略指定程式库
/NOE 阻止LINK从程式库中搜寻扩充字
/NOF 远程呼叫失效
/NOI 区别大小写字母
/NOG 忽略群组的宣告,以便与古早版相容
/NOL 抑制LINK版权讯息
/NON 与/DO同,但不加程式起始位元组
/NOP 不压缩邻近程式区段
/OV 设定抑制插断
/PACKC:number 压缩邻近程式区段
/PACKD:number 压缩邻近资料区段
/PAU 暂停以便更换磁片
/PM 指定Windows或OS/2程式型态
/Q 建立程式库给Quick语言
/SE:number 设定连结时区段总数,预设为128
/ST:number 以此设定堆迭的大小(1~64KB)
/T 建立极小模式程式.COM(需设.model tiny)
/? 显示简单的LINK语法
驱动编译-链接的相关解析:
/nologo 不显示logo信息。
例如: ml /nologo XXX XXX XXX XXX
则不显示
“Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.”
/driver
编译驱动程序, 这个选项造成的最重要的影响是文件中会多出一个"INIT"节区.另外还有".idata"节区,里面包含了一些 IMAGE_IMPORT_DESCRIPTOR结构,指出了需要导入的函数和模块的名称。"INIT"节区的属性被标志为可丢弃,这样装载程序获取了相关的导入信息后,这个节区的内容即被丢弃
/subsystem: native ; 编译 驱动程序
windows ; 编译窗口程序
console ; 编译控制台程序
将对PE文件结构中的 IMAGE_OPTIONAL_HEADER32.Subsystem进行设置,
IMAGE_SUBSYSTEM_UNKNOWN equ 0
IMAGE_SUBSYSTEM_NATIVE equ 1
IMAGE_SUBSYSTEM_WINDOWS_GUI equ 2
IMAGE_SUBSYSTEM_WINDOWS_CUI equ 3
我们需要为驱动指定合适的环境,当链接.exe或者.dll文件的时候,一般指定为Win32子系统。内核模式驱动程序不需要任何子系统,所以我们使用的参数是native
/base:0x10000--将驱动映像的基地址设置为10000h
/align:32--系统内存是很宝贵的,所以最好使用更有效的节区对齐数值
/out:%dvr%.sys--链接器默认会创建以exe作为扩展名的文件,当指定了/DLL选项后,创建的是.dll文件,在这里,我们要强制让它创建以.sys为扩展名的文件
伪指令DB和EQU的作用是什么
伪指令DB和EQU的作用:主要用于告诉汇编程序如何进行汇编,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。
DB,指示在程序存储器中以标号为起始地址的单元里存放的数为字节数据。
EQU,表示EQU两边的量等值,用于为标号或标识符赋值。
伪指令,顾名思义,它不是真正的指令,也就是不是最终的指令,是用于指示汇编程序如何汇编源程序,所以这种语句又叫命令语句。
例如伪指令告诉汇编程序,该源程序如何分段,有哪些逻辑段在程序段中,哪些是当前段等等,伪指令语句的这些命令功能是由汇编程序在汇编源程序时,通过执行另外一段程序来完成的,而不是在运行目标程序时实现的。
就好像召开新闻发布会,主持人用中文讲话,由一个翻译,现场翻译成英文,讲给外国记者听。主持人说的中文,大部分都是要翻译成英文的;少数几句,是说给翻译听得,告诉他如何翻译。
END 是编译结束伪指令,用于通知编译器已经到了源程序的结尾,每个完整的汇编语言源程序中都必须有一个 END 伪指令定义源程序结尾。编译程序检测到这个伪指令后,不再对后面的程序编译。
简述伪指令与指令的区别
“伪指令”,顾名思义,它不是真正的指令,是用于指示汇编程序如何汇编源程序的。
伪指令(Pseudo Instruction)是用于对汇编过程进行控制的,该类指令并不是可执行指令,没有机器代码,只用于汇编过程中为汇编程序提供汇编信息。
通常的“指令”,是与机器语言代码对应的,可以由CPU执行的。
与C语言比较,伪指令相当于C语言中#.....的内容,如:
#include ....
#define ...
#if ...
等等。
汇编程序如何运行
汇编程序是用伪代码编写而成,一定要编译成机器码才能运行。不过假如汇编程序不大,可以在DEBUG内编写和调试运行。具体步骤是:
1、点击开始里的运行选项,输入字母cmd,打开命令提示符;
2、输入cd,进入C盘根目录;
3、输入debgm,调用程序运行指令;
4、在debug模式中,就可以输入自己想运行的汇编指令。
在汇编过程中不产生指令码,只用来指示汇编程序如何汇编的指令是什么
伪指令也叫指示性指令
伪指令(Pseudo instruction)是用于告诉汇编程序如何进行汇编的指令。它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。(来自百度百科)
汇编语言程序中的什么语句不产生可执行的指令代码,只用来指示汇编程序如何编程
伪指令
伪指令是用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。 将相对于程序或相对于寄存器的地址载入寄存器中。

更多文章:
手机老是出现failed(华为手机errconnectfailed)
2025年12月31日 05:30
mathematica10下载(mathematica免费下载地址)
2026年1月12日 23:00
catchphrase的意思(catchphrase是什么意思)
2025年7月19日 18:45
server作主语(英语you must set two server name values怎么翻译)
2026年2月25日 04:00
c语言求最大公约数和最小公倍数辗转相除法(c语言求最大公约数和最小公倍数)
2025年6月24日 13:30
表单大师下载表单大师app下载(眉山市幼儿报名登记表怎么下载下来)
2025年7月1日 03:15
count函数怎么用来统计单元格数量(EXCEL中如何统计此列有数字的单元格个数)
2025年9月23日 17:15
eclipse jdk编译版本(JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本)
2026年1月15日 13:30
模板制作检验批多少米一张(3000多米的围墙,每100米做一个检验批具体怎么做)
2026年9月17日 02:30
easyuidatagrid 获取选中行数据到详情页(easyui datagrid 怎样获取点击行的数据)
2025年6月21日 20:00
img格式打开(win7电脑如何打开img文件win7系统打开img文件的方法)
2025年9月24日 08:30
befarform是什么意思(be far form中的form什么意思 说详细些)
2025年12月14日 23:15
两函数相加定义域怎么求(两函数相加 定义区怎么求啊拜托了各位 谢谢)
2026年9月20日 15:30











