大学计算机硬件技术基础教程第四章课件

上传人:我*** 文档编号:145748465 上传时间:2020-09-23 格式:PPT 页数:55 大小:339KB
返回 下载 相关 举报
大学计算机硬件技术基础教程第四章课件_第1页
第1页 / 共55页
大学计算机硬件技术基础教程第四章课件_第2页
第2页 / 共55页
大学计算机硬件技术基础教程第四章课件_第3页
第3页 / 共55页
大学计算机硬件技术基础教程第四章课件_第4页
第4页 / 共55页
大学计算机硬件技术基础教程第四章课件_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《大学计算机硬件技术基础教程第四章课件》由会员分享,可在线阅读,更多相关《大学计算机硬件技术基础教程第四章课件(55页珍藏版)》请在金锄头文库上搜索。

1、汇编程序设计,8086汇编语言的基本语法 伪指令 程序设计 系统功能调用,汇编程序设计,STACK SEGMENT PARA STACK STACK DB 50DUP(0) STACK ENDS DATA SEGMENT STRING DB WELCOME TO USE DB 8086 ASSEMBLER! DB 0DH,0AH,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA ASSUME SS:STACK START : MOV AX,DATA MOV DS,AX MOV AH,9,MOV DX,OFFSET STRING INT 21H LE

2、A BX,STRING LOOP1: CMP BYTE PTRBX,$ JE LOOP2 MOV AH,5 MOV DL,BX INT 21H INC BX JMP LOOP1 LOOP2: MOV AH,4CH INT 21H CODE ENDS END START,例:显示并打印输出“WELCOME TO USE 8086 ASSEMBLER!”,汇编程序设计,特点: 1。由堆栈段,数据段,附加段,代码段组成。 2。SEGMENT开始,ENDS结束 3。一行写不下,用&连接 4。;后是注释 5。指令性语句 标号: 操作助记符 操作数 ;注释 指示性语句 名字 定义符 参数,。 。注释,汇编

3、程序设计,汇编语言程序,汇编程序设计,数据项 1。常数 2。变量:通常是存放在某些存储单元的数据,这些数据在程序运行期间可以修改。通常变量名出现在程序中,代表存储单元的地址。 变量也可以定义一个数据区或存储区,此时该变量名表示该区的第一个单元。 三种属性:段属性,偏移属性,类型属性。,3。标号:表示一条指令所在的地址,是指令语句的地址符号,常用作转移指令的操作数,即目标地址。 属性:段属性,偏移属性,距离属性(NEAR,FAR)。,汇编程序设计,伪指令 机器指令(指令性语句):微处理器的各种符号指令,在汇编过程中被翻译成相应的目标代码,连接后计算机可执行的机器指令代码。 指式性语句:包括伪指令

4、语句,宏指令语句 伪指令:汇编时被解释执行的语句。,汇编程序设计,一。数据定义及存储器分配伪指令 DB 字节,DW 字,DD 双字,DQ 4字, DT 10字节 DATA DB 10,4,10H DATA1 DW 100,100H,-5 DATA2 DD 3*20,0FFFDH STRING DB ABCD STRING DW AB,汇编程序设计,C DB 100 DUP(0) TAB DB 100 DUP(5 DUP(1),2),汇编程序设计,二。符号定义伪指令 1。等值伪指令 格式: 符号名 EQU 表达式 功能: 将表达式的值赋给符号名 ALFA EQU 100 COUNT EQU AL

5、FA PORTA EQU 56H 注意:符号名被EQU赋值后,不能再赋值。,汇编程序设计,2。等号伪指令 格式: 符号名=表达式 功能: 将表达式的值赋给符号名 ALFA = 100 MOV AL,ALFA ALFA =ALFA + 2 MOV AL,ALFA,汇编程序设计,3。段定义伪指令 格式:段名 SEGMENT 定位类型组合类型类别名 。 段名 ENDS,汇编程序设计,4。段寄存器说明伪指令 格式:ASSUME 段寄存器:段名,段寄存器:段名。 。 功能:指示各逻辑段使用寄存器的情况,并没有填充段寄存器的内容. 也可取消段寄存器与之对应的关系 例题: ASSUME DS:NOTHING

6、 ASSUME DS: DATA MOV AX,DATA MOV DS,AX,汇编程序设计,5。模块定义伪指令 模块开始伪指令 格式:NAME 模块名 功能:指明程序模块的开始,并指出模块名 模块结束伪指令 格式:END 启动标号或过程名 功能:表示一个模块的结束,汇编程序设计,例题: START: MOV AX,DATA MOV DS,AX 。 。 END START,汇编程序设计,三。运算符 1。算术运算符 +,-,*,/,求余数(MOD),左移(SHL),右移(SHR) 例题 CONT = 15*4 CONT = CONT/8 CONT = CONT MOD 3 MOV AL,21H S

7、HL 2 ;AL=84H,汇编程序设计,注意:除了+,-,其余的只能用于常数,而且+,-也要有明确的意义。 例题:要求把首地址为BLOCK的字数组的第五个字传送到DX中 MOV DX,BLOCK+(5-1)*2,汇编程序设计,2。逻辑运算符 AND ,OR ,NOT,XOR 注意:与逻辑指令的区别 一个在操作数中,一个在操作码中 一个由汇编程序执行,一个由机器执行。 例题: AND DX ,PORT AND OFEH,汇编程序设计,3。关系运算符 EQ(相等),NE(不等),LT(小于),GT(大于),LE(小于等于),GE(大于等于) 功能:关系成立结果为0FFFFH,不成立,结果为0 例题

8、:MOV BX,PORT LT 5 MOV BX,(PORT LT 5)AND 20)OR(PORT GE 5)AND 30),汇编程序设计,4。分析操作符 取地址偏移量 格式:OFFSET 变量名或标号 功能:取变量名或标号所在段的段内偏移地址。 取段基址 格式:SEG 变量名或标号 功能:取变量名或标号所在段的段地址。,汇编程序设计,求变量名或标号的类型值TYPE 字节为1,字为2,双字为4,如果是标号,NEAR为-1,FAR为-2 求长度 LENGTH 有DUP返回DUP前的值,否则返回1 求大小 SIZE=LENGTH*TYPE TABLE DW 50 DUP(?) MOV AX,0

9、MOV CX,LENGTH TABLE MOV SI,SIZE TABLE ADD1:SUB SI,TYPE TABLE ADD AX,TABLESI LOOP ADD1,汇编程序设计,5。综合运算符 PTR 运算符 格式:类型 PTR 表达式 功能:用于指出变量、标号或地址的类型属性,新的类型只在当前指令内有效。 MOV BYTE PTR DI,4 MOV BYTE PTR 1000,0 MOV WORD PTR 100,0,汇编程序设计,XYZ DW 10 DUP(?) XPQ EQU BYTE PTR XYZ XPK EQU BYTE PTR XYZ+1 XPT EQU DWORD PT

10、R XYZ+2,汇编程序设计,THIS 运算符 格式:THIS 类型 功能:把它后面指定的类型或距离属性,赋给当前的变量、标号或地址表达式。本身不分配存储单元,段地址与偏移地址与下一个存储单元相同。 A EQU THIS BYTE B DW 20 DUP(?),汇编程序设计,汇编程序设计方法 1。分析问题 2。数学建模 3。确定算法 4。绘制流程图 5。内存空间分配 6。编制程序和静态检查 7。程序调试,汇编程序设计,简单程序设计(顺序程序) 例题:当X=5时,求F(X)=5X3+4X2-3X+2=(5X+4)X-3)X+2,汇编程序设计,DATA SEGMENT X DW 5 RESULT

11、DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AX,5 MUL X ;5*X ADD AX,4 ;5X+4 MUL X ;(5X+4)X SUB AX,3 ; (5X+4)X-3 MUL X ; (5X+4)X-3)X,汇编程序设计,ADD AX,2 ; (5X+4)X-3)X+2 MOV RESULT ,AX MOV AH,4CH INT 21H CODE ENDS END START,汇编程序设计,DATA SEGMENT PARA PUBLIC DATA TABLE D

12、B 0,1,4,9,16,25,36 DB 49,64,81,100,121 DB 144,169,196,225 XX DB 6 YY DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START :MOV AX,DATA MOV DS,AX,MOV BX,OFFSET TABLE MOV AH,0 MOV AL,XX ADD BX,AX MOV AL,BX MOV YY,AL MOV AH,4CH INT 21H CODE ENDS END START,例:内存中有一个015的平方表,查表求自然数M的平方值。,汇编程序设计,分支程序 循环

13、程序 子程序,汇编程序设计,STT SEGMENT PARA STACK STACK DB 50DUP(?) STT ENDS DATA SEGMENT VALUES DW 2,21,87,-23,14,90 COUNT EQU $-VALUES DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STT START PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX,MOV BX,OFFSET VALUES MOV CX,COUNT/2 MOV AX,BX JMP TEST1P FIND

14、_M: ADD BX,2 CMP AX,BX JG TEST1P MOV AX,BX TEST1P: LOOP FIND_M MOV AH,4CH INT 21H CODE ENDS ENDSTART,例:在一个带符号的字类型的数据串中,找出最大值。,汇编程序设计,将5个符号数,从大到小排列。 DATA SEGMENT TABLE DB 12,78,-2,0,75 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,5 DEC CX LOP0: MOV DI,CX MOV BX,0

15、LOP1: MOV AX,TABLEBX,汇编程序设计,: CMP AX,TABLEBX+2 JGE NEXT XCHG AX,TABLEBX+2 MOV TABLEBX,AX NEXT:ADD BX,2 LOOP LOP1 MOV CX,DI LOOP LOP0 MOV AH,4CH INT 21H CODE ENDS END START,汇编程序设计,STACK SEGMENT PARA STACK STACK DB 50DUP(0) STACK ENDS DATA SEGMENT STRING DB WELCOME TO USE DB 8086 ASSEMBLER! DB 0DH,0AH,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA ASSUME SS:STACK START PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号