1 / 69

第五章 汇编语言程序设计

第五章 汇编语言程序设计. 第五章是重点章节. 5.1 概述 5.2 汇编语言语句 5.3 汇编语言数据 5.4 伪指令语句 5.5 宏指令语句 5.6 顺序程序设计 5.7 分枝程序设计. 5.8 循环程序设计 5.9 自程序设计 5.10 实用程序设计示例 5.11 汇编语言程序的开发. 第五章的内容. 5.1 概述. 例 5-1 A+B S= Ⅹ C A-B. 5.2 汇编语言语句 --- (本节内容). 伪指令和指令的通用格式: 1. 名字字段( Name Field ) 1~31 名字字段的三个注意事项 开头

Download Presentation

第五章 汇编语言程序设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 汇编语言程序设计 第五章是重点章节

  2. 5.1概述 5.2汇编语言语句 5.3汇编语言数据 5.4伪指令语句 5.5宏指令语句 5.6顺序程序设计 5.7分枝程序设计 5.8循环程序设计 5.9自程序设计 5.10实用程序设计示例 5.11汇编语言程序的开发 第五章的内容

  3. 5.1概述 例5-1 A+B S= Ⅹ C A-B

  4. 5.2汇编语言语句---(本节内容) 伪指令和指令的通用格式: • 1.名字字段(Name Field) 1~31 名字字段的三个注意事项 开头 • 2.操作符字段(Operator Field) 保留字 • 3.操作数字段(Operand Field) • 4.注释字段(Comment Field)

  5. 5.3汇编语言数据---(本节内容) 5.3.1符号定义语句 5.3.2数据定义语句 5.3.3数据 5.3.4运算符

  6. 5.3 汇编语言数据 5.3.1符号定义语句1 1.等值伪指令 符号 EQU 表达式/符号 (1)常数表达式 (2)地址表达式 (3)变量名、标号、或指令助记符的化名 2.等号伪指令 符号=表达式/符号 (1)将符号重新定义 (2)除指令外将变量名或标号起化名

  7. 5.3 汇编语言数据 5.3.1符号定义语句2 1.等值伪指令 符号 EQU 表达式/符号 2.等号伪指令 符号=表达式/符号 上述两者之间的区别: 1.等号伪指令可以重新定义符号 2.等号伪指令不可以重新定义汇编指令,EQU可以。

  8. 5.3 汇编语言数据-- 5.3.2数据定义语句---使用格式 DB 变量名 DW 表达式1,表达式2 DD

  9. 5.3 汇编语言数据--5.3.2数据定义语句 段属性 变量的三个属性: 偏移量属性 类型属性 1.数值表达式 表达式的类型 2.?表达式 3.字符串表达式 4.带DUP的表达式

  10. 5.3.2数据定义语句---表达式使用1 1.数值表达式 例: age DB 50 age1 DB 12H,34H,56H data1 DW 1234H,2345H data2 DD 4567H,6789H

  11. 5.3.2数据定义语句---表达式使用2 2. ?表达式 例: age DB ? age1 DB ?,?,? data1 DW ?,? data2 DD ?,?

  12. 5.3.2数据定义语句---表达式使用3 3. 字符串表达式(DB<256,DW/DD1~2 个) 例: name1 DB ‘abcdef’ name2 DB ‘zhang’,’wang’,’li’ name3 DW ‘to’,’je’ name4 DD ‘ma’,’le’

  13. 5.3.2数据定义语句---表达式使用4 4. 带DUP表达式 例: DB 变量名 DW 表达式1 DUP(表达式2) DD DUP可以嵌套

  14. 5.3汇编语言数据--- 5.3.3数据1 1.数值常数 二、八、十、十六进制 2.字符常数 (1)立即数 常数的应用 (2)位移量 (3)伪指令的赋值 一、常数

  15. 5.3汇编语言数据--- 5.3.3数据2 二、寄存器操作数 三、存贮器操作数 1.变量 (1)变量名地址 (2)变量的地址 变量名 DW/DD 另个变量名 此时存的是地址

  16. 5.3汇编语言数据--- 5.3.3数据3 2.标号 (1)段属性 标号的三个属性 (2)偏移量属性near (3)类型属性far 类型属性可以用label 来设置,如果不设置的话,有默认属性

  17. 5.3汇编语言数据--- 5.3.3数据4 Label的使用 a.与指令语句连用 例:sub1_FARLabelfar sub1:MOV AX,789AH b.与数据定义语句连用 例:DA_W2Label WORD DA_W1DB 10H DUP(12H,34H)

  18. 5.3汇编语言数据--- 5.3.4运算符 1.算术运算符

  19. 5.3汇编语言数据--- 5.3.4运算符 2.逻辑运算符

  20. 5.3汇编语言数据--- 5.3.4运算符 3.关系运算符

  21. 5.3汇编语言数据--- 5.3.4运算符 4.数值返回运算符 (1)SEG和OFFSET运算符 (2)TYPE运算符 (3)LENGTH运算符和SIZE运算符

  22. 5.3汇编语言数据--- 5.3.4运算符 5.属性运算符PTR 6.运算符优先级

  23. 5.4伪指令语句(内容) 5.4.1段定义语句 5.4.2过程定义语句 5.4.3定位语句和位置计数器 5.4.4偶地址控制语句 5.4.5程序标题语句

  24. 5.4.1段定义语句--一、段定义伪指令 一、段定义伪指令(SEGMENT/END) 1.段名(必选) 2.定位类型(可选) 3.组合类型(可选) 4.类别名(可选)

  25. 5.4.1段定义语句---- 2.定位类型 1.PAGE 2.PARA 3.WORD 4.BYTE

  26. 5.4.1段定义语句---- 3.组合类型 1.NONE(默认) 2.PUBLIC 3.COMMON 4.STACK 5.AT表达式 6.MEMORY

  27. 5.4.1段定义语句---- 4.类别名 必须用单引号括起来,在连接处理时,LINK把类别名相同的段放在连续的存储区,他们仍是各自独立的段

  28. 5.4.1段定义语句—二、段寻址伪指令 ASSUME 段寄存器名:段名,段寄存器名:段名….. ASSUME 段寄存器名:nothing ASSUME nothing

  29. 5.4.1段定义语句—三、段寄存器的加载 1.DS和ES的加载 2.SS的加载 3.CS的加载 (1)END加载起始地址 (2)JMP、CALL、RET指令 (1)自动加载 (2)执行程序

  30. 5.4.2过程定义语句 使用格式: 过程名PROC [NEAR/FAR] ……… ……… RET …….. 过程名ENDP

  31. 5.4.3定位语句和位置计数器 使用格式: $ ORG 表达式

  32. 5.4.4偶地址控制语句 使用格式: EVEN

  33. 5.4.5程序标题语句P193 Title 文本 列表文件的每一页的第一行都显示这个标题

  34. 5.5宏指令语句(内容) 1.宏定义 2.宏调用 3.宏展开

  35. 5.6顺序程序设计-例5-2(1) 10*(X+Y)-3*(Z-1) F= X+Y+Z

  36. 5.6顺序程序设计-例5-2(2) TITLE EXAMPLE PROGRAM DATA SEGMENT VARX DW 123H VARY DW 456H VARZ DW 789H F1 DW ? F2 DW ? DATA ENDS

  37. 5.6顺序程序设计-例5-2(3) STACK1 SEGMENT DW 20H DUP(0) STACK1 ENDS

  38. 5.6顺序程序设计-例5-2(4) CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 BEGIN: MOV AX,DATA MOV DS,AX

  39. 5.6顺序程序设计-例5-2(5) MOV AX,VARX ADD AX,VARY MOV BX,10 MUL BX MOV BX,VARZ DEC BX MOV CX,BX SAL BX,1 ADD BX,CX SUB AX,BX

  40. 5.6顺序程序设计-例5-2(6) MOV BX,VARX ADD BX,VARY ADD BX,VARZ XOR DX,DX DIV BX MOV F1,AX MOV F2,DX MOV AH,4CH INT 21H CODE ENDS END BEGIN 软中断INT 21H

  41. 5.6顺序程序设计-两种退出用户程序的办法 CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 PROC1 PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX …… RET …… CODE ENDS END PROC1

More Related