Chapter 5 编语言醒序没计
Chapter 5
CHAPTER5程序设计基本技术 教学提示 在学习和应用汇编语言进行 程序设计时,有一些经常遇 到的问题,例如算术运算、 代码转换等,需要掌握 一总结常编程/题
教学提示 在学习和应用汇编语言进行 程序设计时,有一些经常遇 到的问题,例如算术运算、 代码转换等,需要掌握 CHAPTER 5 程序设计基本技术
概述 、汇编语言程序的设计步骤 1、分析问题,建立数学模型一对问题的数学描述 2、确定算法一方法和步骤 3、编制程序流程图 处理框 判断框起止框连接框流向线 4、合理分配存储空间和寄存器 寄存器、存储器(常数单元、数据单元和结果单元) 5、编制程序
一、汇编语言程序的设计步骤 1、分析问题,建立数学模型—对问题的数学描述 2、确定算法—方法和步骤 3、编制程序流程图 处理框 判断框 起止框 连接框 流向线 4、合理分配存储空间和寄存器 寄存器、存储器(常数单元、数据单元和结果单元) 5、编制程序 概述
概述 6、调式和运行程序 (1)使用编辑程序编辑好源程序文件(,asm) (2)使用宏汇编程序(MASM)将源程序文 件(asm)汇编成目标文件(obj) (3)使用连接程序(LNK),将目标文件 (obj)连接装配成可执行文件(EXE) (4)使用调式程序( DEBUG),调式可执行 文件,分析结果
6、调式和运行程序 (1)使用编辑程序编辑好源程序文件(.asm) (2)使用宏汇编程序(MASM)将源程序文 件(.asm)汇编成目标文件(.obj) (3)使用连接程序(LINK),将目标文件 (.obj)连接装配成可执行文件(.EXE) (4)使用调式程序(DEBUG),调式可执行 文件,分析结果 概述
概述 、程序的基本结构 、顺序结构程序 2、分支结构程序 3、循环(重复)结构程序 顺序结构分支结构循环(重复)结构
概述 二、程序的基本结构 1、顺序结构程序 2、分支结构程序 3、循环(重复)结构程序 顺序结构 分支结构 循环(重复)结构
顺序结构程序设计 >顺序结构程序完全按指令书写的 前后顺序执行每一条指令,是最 基本、最常见的程序结构 >特点 顺序性、结构简单,只适应于简、 单问题的处理 8例1计算 例2移位
顺序结构程序设计 ➢顺序结构程序完全按指令书写的 前后顺序执行每一条指令,是最 基本、最常见的程序结构 ➢特点 顺序性、结构简单,只适应于简 单问题的处理 例1 计算 例2 移位
例:X+Y+Z→W code segment stack segment para stack assume CS: code, ss: stack, ds: datal dw 64h dup(? start: mov ax, datal stack ends mov as ax datal segment mov ax. X x dw 5 add ax. y y dw 6 adc ax. z mov aX z dw 7 moy ah. 4ch w dw int 21h datal ends ode ends end start
例:X+Y+Z W stack segment para stack dw 64h dup(?) stack ends data1 segment X dw 5 Y dw 6 Z dw 7 W dw ? data1 ends code segment assume cs:code, ss:stack,ds:data1 start:mov ax,data1 mov ds,ax mov ax,X add ax,Y adc ax,Z mov W,ax mov ah,4ch int 21h code ends end start
data segment 例:64位数据移位 var db21h,43h,65h,87h,78h,56h,12h,34h data ends code segment assume cs: code. ds: data start: mov ax. data 图示 mov ds,aⅩ mov al, var[6] mov var[7, al mov al, var[5] mov var [6], a mov al, var [4] mov var[5l, al mov al, var[3] mov var
data segment 例:64位数据移位 var db 21h,43h,65h,87h,78h,56h,12h,34h data ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov al, var[6] mov var[7],al mov al, var[5] mov var[6],al mov al, var[4] mov var[5],al mov al, var[3] mov var[4],al 图示
mov al, var[2] 例:64位数据移位 mov var[3, al mov a var mov var[21, al mov al, var[o] 图示 mov var moⅴ byte ptr var[0],0 mov ah. 4ch int 21h code ends end start 1234567887654321h 移位后345678876432100h
mov al, var[2] mov var[3],al mov al, var[1] mov var[2],al mov al, var[0] mov var[1],al mov byte ptr var[0],0 mov ah,4ch int 21h code ends end start 12 34 56 78 87 65 43 21h 移位后 34 56 78 87 65 43 21 00h 图示 例:64位数据移位
程序结束的方法 程序执行完毕,正常结束要返回DoS,有两种方法 (1)使用PSP中的“INT20H”指令,实现用户程 序结束,返回DOS 方法:①将用户程序设置成一个远过程 ②程序开始时,执行如下指令 PUSH DS MOV AX 0 PUSH AX ③用户程序结束时,用RET指令
程序结束的方法 程序执行完毕,正常结束要返回DOS,有两种方法 (1)使用PSP中的“INT 20H”指令,实现用户程 序结束,返回DOS 方法:①将用户程序设置成一个远过程 ②程序开始时,执行如下指令 PUSH DS MOV AX,0 PUSH AX ③用户程序结束时,用RET指令