安徽理工太骨计算机科学与技术系李兆 《汇编语言》第5章 第五章 循环与分支程序设计 ch5 2021/1/26
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第5章 ch5 2021/1/26 第五章 循环与分支程序设计
教学重点 掌握基本程序结构一一顺序结构、循环结 构、分支结构及其汇编语言程序设计 2.熟悉常见程序设计问题 >数据范围判断(0~9、A~z、a~z) 字母大小写转换; 字符串传送、比较等操作 求最大最小值、数据求和、统计字符个数 数组排序,查找,插入,删除
教学重点 1. 掌握基本程序结构――顺序结构、循环结 构、分支结构及其汇编语言程序设计 2. 熟悉常见程序设计问题: ➢ 数据范围判断(0~9、A~Z、a~z) ➢ 字母大小写转换; ➢ 字符串传送、比较等操作 ➢ 求最大最小值、数据求和、统计字符个数 ➢ 数组排序,查找,插入,删除 ●
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第5章 ●程序结构 (1)顺序结构丨(2)循环结构 (3)分支结构(4)子程序结构 (5)复合结构:多种程序结构的组合 ch5 2021/1/26
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第5章 ch5 2021/1/26 (3)分支结构 (4) 子程序结构 ● 程序结构 (5)复合结构:多种程序结构的组合 … (1) 顺序结构 (2) 循环结构
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第5章 ●编制汇编语言程序的步骤 (1)分析题意,确定算法 (2)根据算法画出程序框图 (3)根据框图编写程序 (4)上机调试程序 ch5 2021/1/26
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第5章 ch5 2021/1/26 ● 编制汇编语言程序的步骤 (1) 分析题意,确定算法 (2) 根据算法画出程序框图 (3) 根据框图编写程序 (4) 上机调试程序
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第5章 50顺序程序设计 >顺序程序完全按指令书写的前后 顺序执行每一条指令,是最基本 最常见的程序结构 般纯粹的顺序结构的程序设计 较少。 ch5 2021/1/26
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第5章 ch5 2021/1/26 5.0 顺序程序设计 ➢顺序程序完全按指令书写的前后 顺序执行每一条指令,是最基本、 最常见的程序结构 ➢一般纯粹的顺序结构的程序设计 较少
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第5章 WeX+Y+Z data segment xor axax W push aX XYzW dw 6 mov ax, data mov ds. ax W moy ax, x W add ax. Y data ends add ax. Z code segment moy W. ax ret main proc far main endp assume cs: code, ds: data code ends start end start push ds ch5 2021/1/26
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第5章 ch5 2021/1/26 例 data segment X dw 5 Y dw 6 Z dw 7 W dw ? data ends code segment main proc far assume cs:code,ds:data start: push ds xor ax,ax push ax mov ax,data mov ds,ax mov ax,X add ax,Y add ax,Z mov W,ax ret main endp code ends end start WX+Y+Z
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第5章 例代码转换 ;查表法,实现一位16进制数转换为ASCI码显示 data segment ascii db 30h 31h 32h 33h 34h. 35h db36h,37h,38h,39h;0~9的ASCI码 db41h,42h,43h,44h,45h,46h;A~F的ASCI码 hex db0bh;任意设定一个待转换的一位16进制数 data ends code segment main proc far ch5 2021/1/26
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第5章 ch5 2021/1/26 例 代码转换 ;查表法,实现一位16进制数转换为ASCII码显示 data segment ASCII db 30h,31h,32h,33h,34h,35h db 36h,37h,38h,39h ;0~9的ASCII码 db 41h,42h,43h,44h,45h,46h;A~F的ASCII码 hex db 0bh ;任意设定一个待转换的一位16进制数 data ends code segment main proc far
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第5章 例代码转换 assume cs: code, ds: data start push ds Xor ax aX push ax mov ax, data mov ds. ax moy bx, offset ascii;BX指向 ASCII码表 mov al. hex AL取得一位16进制数,正是ASCI码表中位移 ch5 2021/1/26
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第5章 ch5 2021/1/26 例 代码转换 assume cs:code,ds:data start: push ds xor ax,ax push ax mov ax,data mov ds,ax ;------------- mov bx,offset ASCII ;BX指向ASCII码表 mov al,hex ;AL取得一位16进制数,正是ASCII码表中位移
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第5章 例代码转换 and al,0fh;只有低4位是有效的,高4位清0 xlat 换码:AL←DS:[BX+AL] moy dl,al;入口参数:DL←AL moy ah,2;02号D0S功能调用 int2lh;显示一个 ASCII码字符 re t main endp code ends end start ch5 2021/1/26
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第5章 ch5 2021/1/26 and al,0fh ;只有低4位是有效的,高4位清0 xlat ;换码:AL←DS:[BX+AL] mov dl,al ;入口参数:DL←AL mov ah,2 ;02号DOS功能调用 int 21h ;显示一个ASCII码字符 ret main endp code ends end start 例 代码转换
;查表法,实现一位16进制数转换为 ASCII码显示 data segment ascii db 30h, 31h 32h 33h34h, 35h db36h,37h,38h,39h ;0~9的 ascii码 db41h,42h,43h,44h,45h,46h;A~F的 ASCII码 hex db0bh;任意设定一个待转换的一位16进制数 data ends code segment main proc far assume cs: code, ds: data start push ds Xor ax ax ush ax mov ax, data mov ds.ax moy bx, offset ascIi ;BX指向ASCI码表 mov al, hex AL取得一位16进制数,正是ASCI码表中位移 and al. ofh ;只有低4位是有效的,高4位清0 xlat ;换码:AL←DS:[BX+AL] mov dl, al ;入口参数:DL←AL moy ah. 2 ;02号D0功能调用 int 21h ;显示一个ASCI码字符 ret main endp code ends end start
;查表法,实现一位16进制数转换为ASCII码显示 data segment ASCII db 30h,31h,32h,33h,34h,35h db 36h,37h,38h,39h ;0~9的ASCII码 db 41h,42h,43h,44h,45h,46h;A~F的ASCII码 hex db 0bh ;任意设定一个待转换的一位16进制数 data ends code segment main proc far assume cs:code,ds:data start: push ds xor ax,ax push ax mov ax,data mov ds,ax ;------------- mov bx,offset ASCII ;BX指向ASCII码表 mov al,hex ;AL 取得一位16进制数,正 是ASCII 码表中位 移 and al,0fh ;只有低4位是有效的,高4位清0 xlat ;换码:AL←DS:[BX+AL] mov dl,al ;入口参数:DL←AL mov ah,2 ;02号DOS功能调用 int 21h ;显示一个ASCII码字符 ret main endp code ends end start