超好的汇编学习教程PPT学习教案_第1页
超好的汇编学习教程PPT学习教案_第2页
超好的汇编学习教程PPT学习教案_第3页
超好的汇编学习教程PPT学习教案_第4页
超好的汇编学习教程PPT学习教案_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1 超好的汇编学习教程超好的汇编学习教程 1. 程序运行步骤及生成的文件程序运行步骤及生成的文件 myfile.asm 编辑程序编辑程序 汇编程序汇编程序 连接程序连接程序 myfile.crf otherfiles.obj myfile.lst myfile.obj myfile.map myfile.exe 第1页/共24页 建立建立, , 运行汇编语言程序运行汇编语言程序 CEDIT MYFILE . ASM CMASM MYFILE . ASM Microsoft (R) Macro Assembler Version 5.10 Copyright (C) Microsoft C

2、orp 1981,1988.All rights reserved. Object filename MYFILE.OBJ: Source listing NUL.LST: MYFILE.LST Cross-reference NUL.CRF: 47962 + 413345Bytes symbol space free 0 Warning Errors 0 Severe Errors CLINK MYFILE . OBJ Microsoft (R) Overlay Linker Version 3.64 Copyright (C) Microsoft Corp 1983-1988. All r

3、ights reserved. Run File MYFILE.EXE: List File NUL.MAP: Libraries .LIB: LINK : warning L4021: no stack segment CMYFILE 第2页/共24页 2. 汇编程序功能汇编程序功能 汇编程序的主要功能:汇编程序的主要功能: 检查源程序,给出出错信息。检查源程序,给出出错信息。 产生目标文件产生目标文件( (.obj.obj) )和列表文件和列表文件( (.lst.lst) ) 。 展开宏指令。展开宏指令。 第3页/共24页 3. 伪操作(伪指令)伪操作(伪指令) 伪操作是汇编程序对源程序进

4、行汇编时处理的伪操作是汇编程序对源程序进行汇编时处理的 操作,完成处理器选择、存储模式定义、数据定义、操作,完成处理器选择、存储模式定义、数据定义、 存储器分配、指示程序开始结束等功能。存储器分配、指示程序开始结束等功能。 处理器选择伪操作处理器选择伪操作 段定义伪操作段定义伪操作 程序开始和结束伪操作程序开始和结束伪操作 数据定义及存储器分配伪操作数据定义及存储器分配伪操作 表达式赋值伪操作表达式赋值伪操作 地址计数器与对准伪操作地址计数器与对准伪操作 基数控制伪操作基数控制伪操作 Directives 第4页/共24页 段定义伪操作:段定义伪操作: 完整的段定义格式完整的段定义格式 dat

5、a segment data segment ; 定义数据段定义数据段 data endsdata ends ;-;- - - extra segment extra segment ; 定义附加段定义附加段 extra endsextra ends ;-;- - - code segment code segment ; 定义代码段定义代码段 assume cs:code, ds:data, es:extraassume cs:code, ds:data, es:extra start: start: mov ax, data mov ax, data mov ds, ax mov ds,

6、ax ; 段地址段地址 段寄存段寄存 器器 code endscode ends end start end start PSPPSP D D S S E E S S SSSS CSCS EXE程序的内存映象图 装入模块文件头 第5页/共24页 code segment main proc far assume start: push ds mov ax, 0 push ax ret main endp code ends end start code segment main proc far assume start: mov ax,4c00h int 21h main endp code

7、 ends end start 第6页/共24页 TITLE text NAME module_name END label . STARTUP . EXIT return_value 程序开始和结束伪操作:程序开始和结束伪操作: 第7页/共24页 数据定义及存储器分配伪操作:数据定义及存储器分配伪操作: 变量变量 助记符助记符 操作数操作数 , 操作数操作数 , ; 注释注释 助记符:助记符:DB DW DD DF DQ DTDB DW DD DF DQ DT DATA_BYTE DB 10,4,10H,? DATA_WORD DW 100,100H,-5,? - - 0AH0AH 04H0

8、4H 10H10H - - 64H64H 00H00H 00H00H 01H 01H FBHFBH FFHFFH - - DATA_BYTE DATA_BYTE DATA_WORD DATA_WORD 例: 第8页/共24页 ARRAY DB HELLO DB AB DW AB 48H48H 45H45H 4CH4CH 4CH4CH 4FH4FH 41H41H 42H42H 42H42H 41H 41H ARRAY ARRAY PAR1 DW 100,200 PAR2 DW 300,400 ADDR_TABLE DW PAR1,PAR2 VAR DB 100 DUP (?) DB 2 DUP

9、(0,2 DUP(1,2),3) 第9页/共24页 OPER1 DB ?, ? OPER2 DW ?, ? MOV OPER1, 0 ;字节指令 MOV OPER2, 0 ;字指令 OPER1 DB 1, 2 OPER2 DW 1234H, 5678H MOV AX, OPER1+1 MOV AL, OPER2 类型不匹配 MOV AX, MOV AX, WORD PTRWORD PTR OPER1+1 OPER1+1 MOV AL, MOV AL, BYTE PTRBYTE PTR OPER2 OPER2 (AX)=3402H (AL)=34H 第10页/共24页 BYTE_ARRAY LA

10、BEL BYTE WORD_ARRAY DW 50 DUP (?) tos LABEL WORD LABEL 伪操作:伪操作: name LABEL typename LABEL type BYTE_ARRAY BYTE_ARRAY WORD_ARRAY WORD_ARRAY tos tos 50字 00640064 H H 第11页/共24页 表达式赋值伪操作:表达式赋值伪操作: 表达式名表达式名 EQU 表达式表达式 ALPHA EQU 9 BETA EQU ALPHA+18 BB EQU BP+8 “ = ” 伪操作伪操作 (允许重复定义允许重复定义) EMP = 7 EMP = EMP

11、+1 第12页/共24页 地址计数器与对准伪操作:地址计数器与对准伪操作: 地址计数器地址计数器 $ :保存当前正在汇编的指令的地址保存当前正在汇编的指令的地址 ORG $+8 ; 跳过8个字节的存储区 JNE $+6 ; 转向地址是 JNE 的首址 +6 JMP $+2 ;转向下一条指令 $ 用在伪操作的参数字段:用在伪操作的参数字段: 表示地址计数器的当前值表示地址计数器的当前值 ARRAY DW 1, 2 , $+4 , 3 , 4 , $+4 00H00H 01H 00H 02H 00H 7CH7CH 00H00H 03H 00H 04H 00H 82H82H ARRAY ARRAY

12、007E007E 00780078 00740074 第13页/共24页 ORG 伪操作:伪操作: SEG1 SEGMENT ORG 10 VAR1 DW 1234H ORG 20 VAR2 DW 5678H ORG $+8 VAR3 DW 1357H SEG1 ENDS BUFFER LABEL BYTE ORG $+8 BUFFER DB 8 DUP (?) ORG 100H START: 第14页/共24页 3. 汇编语言程序格式汇编语言程序格式 标号标号 指令指令 寄存器寄存器 说明程序或语句说明程序或语句 变量变量 伪指令伪指令 标号标号 的功能的功能 宏指令宏指令 变量变量 常数常

13、数 表达式表达式 源程序的每条语句可表示为:源程序的每条语句可表示为: 名字名字 操作操作 操作数操作数 ; 注释注释 标号标号/ /变量:变量:段值、偏移量、类型三种属性段值、偏移量、类型三种属性 表达式:表达式:数字表达式数字表达式 地址表达式地址表达式 第15页/共24页 表达式操作符:表达式操作符: (1) 算术操作符:算术操作符: 、 、 、 、 Mod VIDEO_BUF DB 25*80*2 DUP(?) ARRAY DW 1,2,3,4,5,6,7 ARYEND DW ? MOV CX, (ARYEND-ARRAY)/2 ADD AX, BLOCK+2 ; 符号地址常数 有意义

14、 ; 时意义不明确 MOV AX, BX+1 ; MOV AX, BX+1 ; 寄存器间接寻址 第16页/共24页 OPR1 EQU 25 ;00011001B OPR2 EQU 7 ;00000111B AND AX, OPR1 AND OPR2 (2) 逻辑和移位操作符:逻辑和移位操作符: AND、OR、 XOR、NOT、SHL、SHR ; AND AX,1 IN AL, PORT_VAL ;61H OUT PORT_VAL AND 0FEH, AL ;60H MOV AX, 0FFFFH SHL 2; MOV AX,0FFFCH 第17页/共24页 (3) 关系操作符:关系操作符: EQ

15、、NE、LT、LE、 GT、GE 计算结果为计算结果为逻辑值逻辑值:真真 0 0FFFFHFFFFH 假假 0000H0000H X: Y: 若若 128 (真真) 汇编结果:汇编结果: MOV FID, -1 若若 128 (假假) 汇编结果:汇编结果: MOV FID, 0 MOV FID, (OFFSET Y - OFFSET X) LE 128 第18页/共24页 (4) 数值回送操作符:数值回送操作符: OFFSET、SEG 、TYPE、 LENGTH、SIZE SIZE SIZE 变量变量 功能:功能:LENGTH LENGTH * * TYPE TYPE OFFSETOFFSET

16、 / SEGSEG 变量变量 / 标号标号 功能:回送变量或标号的偏址功能:回送变量或标号的偏址 / / 段址段址 TYPETYPE 变量变量 / 标号标号 / 常数常数 DB DW DD DF DQ DT NEAR FAR DB DW DD DF DQ DT NEAR FAR 常数常数 1 2 4 6 8 10 -1 -2 01 2 4 6 8 10 -1 -2 0 LENGTH LENGTH 变量变量 功能:回送由功能:回送由DUP定义的定义的变量的单元数,其它情况回送变量的单元数,其它情况回送1 1 第19页/共24页 ARRAY DW 100 DUP (?) TABLE DB ABCD

17、 ADD SI, TYPE ARRAY ; ADD SI, 2 ADD SI, TYPE TABLE ; ADD SI, 1 MOV CX, LENGTH ARRAY ; MOV CX, 100 MOV CX, LENGTH TABLE ; MOV CX, 1 MOV CX, SIZE ARRAY ; MOV CX, 200 MOV CX, SIZE TABLE ; MOV CX, 1 第20页/共24页 (5) 属性操作符:属性操作符: PTR、段操作符、段操作符、SHORT、 THIS 、HIGH、LOW、HIGHWORD、LOWWORD HIGH和LOW CONS EQU 1234H M

18、OV AH, HIGHHIGH CONS MOV AL, LOWLOW CONS 类型类型 PTR PTR 表达式表达式 MOV WORD PTRPTR BX, 5 段操作符段操作符 MOV ES:ES: BX, AL SHORT SHORT 标号标号 JMP SHORTSHORT NEXT THIS THIS 类型类型 TA EQU THISTHIS BYTE TD DW 1234H NEXT EQU THISTHIS FAR MOV AX,2 第21页/共24页 4. 汇编语言程序的上机过程汇编语言程序的上机过程 .model tiny .code org 100h beginbegin: jmp mainmain ;* num1 dw 1199H num2 dw 1166H sum dw ? ;* mainmain proc nearnear mov ax, num1 add ax, num2 mov sum, ax

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论