第3章 汇编语言基础
Posted 夏风微凉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第3章 汇编语言基础相关的知识,希望对你有一定的参考价值。
https://files.cnblogs.com/files/student-note/MASM615.zip
整数常量:
格式[{+/-}]数字[基数]
常用基数后缀
h:十六进制 d:十进制 b:二进制 q/o:八进制 r:编码实数
十六进制如果是以字母开口则需要加0 ,防止编译器当成标识符
优先级别: () -> +-(一元的) -> */ -> MOD -> +-
指令格式 [:标号]指令助记符|操作数[;注释]
标号:
充当指令或数据位置标记的标识符
数据标号:
count dword 100
注释语法:
单行用 ;
多行用 COMMENT 用户自定义符号 内容 用户自定义符号
TITLE Program Template (Template.asm)
;程序的描述:
;作者:
;创建时间:
;修改:
;日期: 修改者:
INCLUDE Irvine32.inc ;导入头文件
.data
;(在此插入变量)
.code
main proc
;(插入代码)
exit
main endp
;(在此插入其他子程序)
end main
--常用编译语句 使用的是masm615
ml /c /coff 1.asm
link32 /subsystem:console irvine32.lib kernel32.lib 1.obj
数据定义语法
[变量名] 数据类型伪指令 初始值[,初始值]
初始值用 ? 代替,表示可以用执行指令动态赋值
定义字符串
greeting1 byte "good afternoon",0
greeting2 byte \'good night\',0
续行符(\\)用来把两行连接成一条程序语句,只能放在每行的最后面
greeting1 \\
byte "good afternoon",0
DUP操作符使用常量表达式作为计数器为多个数据项分配存储空间:
BYTE 3 DUP("XXX") 9个Byte
.data? 伪指令可用于声明未初始化数据
代码数据可以随便切换,可用于局部变量
eg:
.code
mov ax,3900h
.data
val word 1
.code
mov ax,val
符号常量:语法 名称=表达式
COUNT=1
MOV AX,COUNT
重定义:
COUNT =5
MOV AL,COUNT ;5
COUNT=10
MOV AL,COUNT ;10
计算数组和字符串的大小:
eg:
list byte 10,20,39
listsize=($-list);$表示当前地址
EQU 伪指令
语法:
name equ expression
name equ symbol
name equ <text>
以上是关于第3章 汇编语言基础的主要内容,如果未能解决你的问题,请参考以下文章