基本汇编语言程序实例 (1) DATA SEGMENT (2) String DB‘程序设计’,”$ 3 DATA ENDS (4) CODE SEGMENT (5) ASSUME CS: CODE, DS: DATA,SS: STACK (6 START: MOV AX, DATA MOV DS.AX (8 MO DX,OFFSET String MOV AH,9 aH= 9 (10 int 21H MOV AX4C00H 功能:显示字符串 12 int 21H DS:DX=串地址 13) CODE ENDS 字符串以“$”结尾 14 STACK SEGMENT STACK (15 DB 256 DUP() AH= 40 (16 STACK ENDS 功能:带返回码终止 (17) END START AL=返回码
◼ 基本汇编语言程序实例 (1) DATA SEGMENT (2) String DB ‘程序设计’ , ”$” (3) DATA ENDS (4) CODE SEGMENT (5) ASSUME CS:CODE,DS:DATA,SS:STACK (6) START: MOV AX,DATA (7) MOV DS,AX (8) MOV DX,OFFSET String (9) MOV AH,9 (10) INT 21H (11) MOV AX,4C00H (12) INT 21H (13) CODE ENDS (14) STACK SEGMENT STACK (15) DB 256 DUP(?) (16) STACK ENDS (17) END START AH = 9 功能:显示字符串 DS:DX = 串地址 字符串以“$”结尾 AH = 4C 功能:带返回码终止 AL = 返回码
开始 用编辑工具编辑源程序 汇编语言程序 源程序 XXXX. asm 的开发过程 用MASM进行汇编 有语法错误? N 目标文件 XXXX. ob 用凵NK连接 有错误? 执行可执行文件Xee|用 DEBUG调试 正确? 结束
◼ 汇编语言程序 的开发过程 开 始 结 束 用编辑工具编辑源程序 源程序 XXXX.asm 用MASM进行汇编 有语法错误? Y N 目标文件 XXXX.obj 用LINK连接 有错误? Y N 执行可执行文件XXXX.exe 正确? N Y 用DEBUG调试
结构化程序设计 程序设计的基本步骤 ■分析问题 确定处理方案 确定具体操作步骤,绘制流程图 编写程序 调试并运行程序,得到预期结果 整理输出结果,写出有关文档资料
◼ 结构化程序设计 ◼ 程序设计的基本步骤 ◼ 分析问题 ◼ 确定处理方案 ◼ 确定具体操作步骤,绘制流程图 ◼ 编写程序 ◼ 调试并运行程序,得到预期结果 ◼ 整理输出结果,写出有关文档资料
流程图的画法 起止框 执行框 流程线 条件满足? 条件满足?y A A 判断框 连接点
◼ 流程图的画法 起止框 执行框 流程线 条件满足? 条件满足? Y Y N N 判断框 A A 连接点
指令格式及寻址方式 ■指令格式 操作码 操作数 方向位,0:REG字段指出的寄存器为源操作数寄存器 1:REG字段指出的寄存器为目的操作数寄存器 字位,0:参加运算的操作数为字节操作数 1:参加运算的操作数为字操作数 形式1 OP CODEDW 0 1~2个字节1~2个字节 形式2 OPCODE W MOD REGR/ M DATA/DISP DATA/DISP 01~2个字节1~2个字节 形式3 OPCODED W DATA/DISP| DATA/DISP
指令格式及寻址方式 ◼ 指令格式 操 作 码 操 作 数 OP CODE D W 7 2 1 0 形式1 OP CODE D W 7 2 1 0 形式2 OP CODE D W 7 2 1 0 形式3 DATA/DISP DATA/DISP 1~2个字节 1~2个字节 MOD REG R / M DATA/DISP DATA/DISP 1~2个字节 1~2个字节 方向位,0:REG字段指出的寄存器为源操作数寄存器 1:REG字段指出的寄存器为目的操作数寄存器 字位,0:参加运算的操作数为字节操作数 1:参加运算的操作数为字操作数