- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CPU指令及汇编练习题1
* 7.1 汇编语言的基本概念:机器语言,高级语言,汇编语言,汇编语言源 程序,汇编,汇编程序 7.2 汇编语言源程序的格式:分段结构(汇编语言源程序由若干段组成,每个段以SEGMENT语句开始,以ENDS语句结束。整个源程序的结尾是END语句);语句分类:指令/伪指令语句;语句的格式:[名字] 助记符 [操作数] [;注释] LOOP1: MOV AL,DATA2[SI] DATA1 DB 0F8H,60H 可以作为操作数的有常数、寄存器、标号、变量和表达式:,0F2H, ‘ABCDEFG’;标号代表一条指令的符号地址,因此可以作为转移(无条件转移或条件转移)、过程调用CALL以及循环控制LOOP指令的操作数;变量的类型属性有DB、DW、DD。 MOV AX,DATA;表达式:算术运算符( +,?,*,/、MOD、SHL、SHR):32 MOD 5,逻辑运算符: AND,OR,XOR和NOT, 24H AND 0FH;关系运算符:EQ,NE,LT,GT,LE,GE等, MOV AX,4 EQ 3,当关系不成立(假)时,结果为0(全0);当关系成立(真)时,结果为0FFFFH(全1);分析运算符: SEG、OFFSET 、TYPE 、 LENGTH和SIZE, MOV AX,SEG ARRAY, MOV DI,OFFSET DATA1, LENGTH 运算符可得到这个变量的个数。如果未用DUP说明,则得到的结果总是1。 -2 -1 10 8 4 2 1 Type值 FAR NEAR TBYTE QWORD DWORD WORD BYTE 类型 SIZE=LENGTH*TYPE 7.3 伪指令语句 1、伪指令与指令语句的区别:指令是给CPU的命令,伪指令是给汇编程序的命令;汇编以后,每条指令产生一一对应的目标代码;而伪指令则不产生与之相应的目标代码。 2、数据定义伪指令(DB ,DW ,DD )定义一个变量的类型,给变量赋初值,或者仅仅给变量分配存储单元,而不赋予特定的值。 DATA DB 101,0F0H ;存入65H,F0H EXPR DB 2*8+7 ;存入17H STR DB ‘Hello! ;存入6个字符的ASCII码值 AB DB AB ;存入41H,42H BA DW AB ;存入42H,41H BUFFER DB 10 DUP(?) ZERO DW 30 DUP(0) MASK DB 5 DUP(OK!) ARRAY DB 100 DUP(3 DUP(8),6) 3、符号定义伪指令* (EQU)给一个符号重新命名,或定义新的类型属性等。 X1 EQU 0DH COUNT =COUNT?10 4、段定义伪指令(SEGMENT/ENDS, ASSUME): ASSUME伪指令定义符应该放在可执行程序开始位置的前面。将某一个段寄存器设置为存放某一个逻辑段的段地址,并没有给段寄存器赋予实际的初值。 5、过程定义伪指令(过程名 PROC ,过程名 ENDP) DATAS SEGMENT DATA1 DB 0F8H,60H, 50 DATA2 DW 5678H DA1 DB 2*8+7 VAR DW ? X1 DB AB X2 DW AB X3 DD AB ARRAY DD 10 DUP(?) STR DB ‘A TEST‘ L EQU STR-DA1 DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX ;此处计算相关内容 MOV AL,L MOV AX,TYPE VAR MOV BX,TYPE ARRAY MOV CX,TYPE STR MOV DX,LENGTH ARRAY MOV SI,SIZE ARRAY
文档评论(0)