汇编语言入门基础(1)

汇编语言入门基础(1)



1.配置编译环境

1.1软件下载

1.1.1DOSBOX下载

进入官网选择对应版本进行下载。下载路径:DOSBox, an x86 emulator with DOS

1.1.2 DEBUG、TASM、TLINK下载

链接:https://pan.baidu.com/s/16Z8IeUGzgaJriKRItQ5oLw

提取码:F777

1.2 环境配置

将debug、tasm、tlink下载后移动到同一个文件夹,图方便的话也可即将该文件夹设置为程序存储文件夹。

然后将环境设置成如下形式:

image-20220411180518930

打开dosbox,则会如下图所示。然后即可在命令行输入指令

image-20220411180625789

1.3 生成exe文件

  1. 编写.asm文件,或者先编写.txt文件,再修改后缀名为.asm

  2. 在上面命令行输入如下指令,将.asm文件汇编为.obj文件

    image-20220411184005956

  3. 再次输入如下指令,将利用.obj文件连接生成.exe文件

    image-20220411184156741

2.源程序结构

	[.586]		;选择指令集,选择针对哪种CPU进行执行
DATA SEGMENT	; 定义数据段
……				;数据定义伪指令序列
DATA ENDS		
STACK SEGMENT	; 定义堆栈段
……				;数据定义伪指令序列
STACK ENDS
CODE SEGMENT	;定义代码段
ASSUME CS:CODE,SS:STACK,DS:DATA;段寄存器说明,代码段必不可少,图方便可以直接全都列写出来
START:				
	MOV AX,DATA		;取数据段基址
	MOV DS,AX		;建立数据段的可寻址性
	……
	MOV AH,4CH		;返回DOS操作系统
	INT 21H
CODE ENDS
	END START		;当源程序为主模块,需要含启动标号START

3. 常用伪指令语句

3.1逻辑段定义伪指令

  1. 段定义语句:

    从SEGMENT语句开始,到ENDS语句结束。

  2. 段寄存器说明语句:

    ASSUME 段寄存器:段名

    说明源程序中定义的段分别由哪个寄存器去寻址

  3. 设置段寄存器的初值

    1.使用SEG运算符求出逻辑段的段基址
    MOV AX,SEG	DATA	;DATA数据段段名
    MOV DS,AX
    2.直接将段名赋给段寄存器
    MOV AX,DATA
    MOV ES,AX
    

3.2 数据定义伪指令

1.常数定义伪指令

不分配内存

  1. 赋值伪指令EQU

    使用EQU伪指令定义符号常数,其值在之后不能改变,即等同于c语言的const

  2. 等号伪指令——=

    其符号名可以重新定义,定义语句可以放在任何逻辑段

2.变量定义伪指令

DB/DW/DD 数据项

  1. DB是从左至右每个字符分配一个字节单元
  2. DW为每两个字符分配一个字单元
  3. DD为每四个字符分配1个双字单元

$ 为 当 前 地 址 计 数 器 的 值 , 会 获 取 当 前 内 存 地 址 {\color{RED} \mathrm{为当前地址计数器的值,会获取当前内存地址} }

3.3 过程与宏定义伪指令

1.过程定义伪指令
过程名	PROC  [属性]
……
[RET]
……
RET
过程名	ENDP

在主程序通过CALL调用

2.宏定义伪指令
宏名 MACRO [形式参数表]
……
ENDM

宏体内的标号要用LOCAL伪指令说明为局部标号,以免多次调用,发生定义错误;宏展开时,LOCAL定义标号由??0000到??FFFF的符号名来替代。

主程序通过CALL调用

2.宏定义伪指令
宏名 MACRO [形式参数表]
……
ENDM

宏体内的标号要用LOCAL伪指令说明为局部标号,以免多次调用,发生定义错误;宏展开时,LOCAL定义标号由??0000到??FFFF的符号名来替代。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Miracle Fan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值