- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二部分 汇编语言程序设计——伪指令课件
第二部分 汇编语言程序设计 —— 伪指令;参数、变量和标号;数值型参数;1. 常数;十进制常数;十六进制常数;二进制常数;字符串常数;符号常数;符号定义
DosWriteChar equ 2
CarriageReturn = 13
CallDOS equ int 21h
符号应用(左边程序段等价右侧的符号形式)
mov ah,2 ;mov ah,DosWriteChar
mov dl,13 ;mov dl,CarriageReturn
int 21h ;CallDOS;2. 数值表达式;运算符;算术运算符;逻辑运算符;移位运算符;关系运算符;高低分离符;地址型参数;3.2.2 变量定义伪指令;变量名;初值表;变量定义伪指令助记符;定义字节单元伪指令DB;data segment ;数据段
X db a,-5
db 2 dup(100),?
Y db ABC
data ends;mov al,X
;此处X表示它的第1个数据,故AL←a
dec X+1
;对X为始的第2个数据减1,故成为-6
mov Y,al
;现在Y这个字符串成为 aBC;定义字单元伪指令DW;data segment ;数据段
count dw 8000h,?,AB
maxint equ 64h
number dw maxint
array dw maxint dup(0)
data ends;字变量和字常量的定义:
WNUM EQU 5678H ;定义WNUM为常量
COUNT DW 20H
;定义COUNT变量,假设在数据段的偏移地址为10H
字变量和字常量的应用:
MOV AX,[BX+SI+WNUM] ; MOV AX,[BX+SI+5678H]
MOV AX,COUNT ; MOV AX,[0010H]
MOV AX,[SI+COUNT] ; MOV AX,COUNT[SI]
; MOV AX,[SI+10H]
LEA BX,COUNT ; LEA BX,[0010H]
MOV BX,OFFSET COUNT ; MOV BX,0010H;定义双字单元伪指令DD;其他数据单元定义伪指令;例3.2:数据定义综合应用-1/2;例3.2:数据定义综合应用-2/2;例3.3:数据复制和显示-1/2;例3.3:数据复制和显示-2/2;定位伪指令;3.2.3 变量和标号的属性;地址操作符; org $+10
array db 45,45h
.code
mov ax,seg array
mov ds,ax
mov bx,offset array
;等价于 lea bx,array
mov cl,array+4
;等效于 mov cl,array[4]
mov ax,es:[2000h];类型操作符;PTR操作符;THIS操作符;TYPE操作符; .model small
.stack
.data
v_byte equ this byte
;v_byte是字节类型,与变量v_word的地址相同
v_word dw 3332h,3735h
;v_word是字类型的变量
target dw 5 dup(20h)
;分配数据空间2×5=10字节
crlf db 0dh,0ah,$
flag db 0
n_point dw offset s_label
;取得标号s_label的偏移地址;例3.4:属性及其应用-2/5;例3.4:属性及其应用-3/5;例3.4:属性及其应用-4/5;例3.4:属性及其应用-5/5;;SampleB.ASM
stack segment stack
dw 512 dup(?)
stack ends
data segment
... ;在数据段定义数据
data ends
code segment ’code’
assume cs:code,ds:data,ss:stack
start: mov ax,data
mov ds,ax
... ;在代码段填入指令序列
mov ax,4c00h
int 21h
... ;子程序代码
code ends
end start;完整段定义伪指令;段定位(align)属性;段组合(combine)属性;段字(use)属性;段类别(class)属性;指定段寄存器伪指令;段组伪指令;stackseg segment stack
db 256 dup(?)
stackseg ends
data1 segment word public const
const1 dw 100
data1 ends
data2 segment word public vars
var1 dw ?
data2 ends
datagroup group data1,d
文档评论(0)