- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
21世纪高等院校规划教材;第二章 程序设计基础;本章学习目标;2.1 汇编语言源程序结构;例2-1 显示信息“How do you do ?”;例2-2 将内存缓冲区中以BUFA开始的一组字数据传送到BUFB开始的内存区。; LEA SI,BUFA
LEA DI,BUFB
MOV CX,COUNT
LOP: MOV AX,[SI]
MOV [DI],AX
INC SI
INC SI
INC DI
INC DI
DEC CX
JNZ LOP
MOV AH,4CH
INT 21H
CODE ENDS
END START
;2.1.2 机器指令简介;所有机器指令从格式上看,有3种指令格式:; ② 单操作数指令
格式: 助记符 操作数
例如: PUSH AX
POP BX; ③ 双操作数指令
格式: 助记符 目的操作数,源操作数
例如:MOV CX,DX;2.1.3 常量、变量、标号及表达式;例如:在下面的汇编源程序中,带下画线的量就是常量
DATA SEGMENT
STR DB “How do you do ?$”
DATA ENDS
STACK SEGMENT STACK
DB 200 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
START: MOV AX,DATA
MOV DS,AX
LEA DX,STR
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START; 例如:在下面的数据段中,带下画线的是一个符号常数,它是使用EQU伪指令定义的。
DATA SEGMENT
BUFA DW 367BH,2845H,0A78H, 9DE3H,0F6BH,6532H
COUNT EQU ($-BUFA)/2
BUFB DW COUNT DUP (?)
DATA ENDS
定义符号常数使用EQU伪指令、“=”伪指令。;2.变量;(1)变量的定义;例如:在数据段DATA中定义字节变量STR。
DATA SEGMENT
STR DB “How do you do ?$”
DATA ENDS;例如:在数据段DATA中定义了字变量BUFA和BUFB。
DATA SEGMENT
BUFA DW 367BH,2845H,0A78H, 9DE3H,0F6BH,6532H
COUNT EQU ($-BUFA)/2
BUFB DW COUNT DUP (?)
DATA ENDS;(2)变量的属性;3.标号;(1)标号的定义;(2)标号的属性;4.表达式;(1)算术运算符;例如:算术表达式的计算
219/7=31
86.4/2.6=33
219 MOD 7的结果为2;(2)关系运算符;例如:假设NUM的值为60H。则:
NUM GT 80H
NUM EQ 60H ;⑶ 逻辑运算符;例如: 假设NUM的值为6BH ?
则:
NUM AND 87H ;表达式的值是03H
NUM OR 87H ;表达式的值是0EFH
NUM XOR 87H ;表达式的值是0ECH
NOT 87H ;表达式的值是78H
NUM SHR 2 ;表达式的值是1AH
NUM SHL 2 ;表达式的值是0ACH;⑷ 其他运算符;① SEG ;② OFFSET ;DATA SEGMENT
BUFA DW 367BH,2845H,0A78H, 9DE3H,0F6BH,6532H
COUNT EQU ($-BUFA)/2
BUFB DW COUNT DUP (?)
DATA ENDS
MOV AX,SEG BUFA
MOV DS,AX
MOV SI,OFFSET BUFA
MOV DI,OFFSET BUFB;③ TYPE 返回其后变量或标号的类型。;例如:在下面的数据段中。
DATA SEGMENT
A DB 87H,45H,92H
B DW 34D6H,0F67H
C DD ?
DATA ENDS
若在代码段中有如下指令:
MOV AH,TYPE A
MOV AL,TYPE B
MOV CH,TYPE C
则将被汇编成:
MOV AH,1
MOV AL,2
MOV CH,4;④ LENGTH ;⑤ SIZE;⑥
原创力文档


文档评论(0)