微机原理第五章(4)PPT教学课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▲ 计算机要利用显示器、键盘等外设时, 须据程序设计的需要进行有关转换。
2020/12/10
14
例 将CPU运算的结果通过显示器显示时,如二进制数“A9”
需将结果转换成其对应的ASCII码才能进行显示。
显示缓冲区 存放的内容 (字符的ASCII 码)
CPU运算后所得的二进制数 10101001
例1
4
3.几种程序结构 顺序结构 分支结构 循环结构 子程结构
2020/12/10
5
顺序结构
2020/12/10
6
Y N
两个分支
分支结构
、、、 CMP AL, BL JG great
AL≤BLxit: 、、、 、、、
2020/12/10
7
分支结构
N
Y
N
、、、
CMP AL, 0 JG great JL less
AL=0处理
Y
JMP exit
less: AL<0处理
三个分支
JMP exit great:
AL>0处理 exit: 、、、
2020/12/10
8
循环结构
循环初始设置 循环条件判断? N
Y 循环体
当型循环 (当条件成立进入循环)
▲ BX是一个16位寄存器
二进制 十六进制
1010 1001 0011 1110 A93E
屏幕上的显示 ‘A’ ‘9’ ‘3’ ‘E’ 对应的ASCII 41H 39H 33H 45H
?
▲ 用十六进显示时,每4位用一个字符显示,共4个
其中: 0000 →’0’ 30H , 1010 →’A’ 41H
subp subp
PROC 、、 、、
RET ENDP
MOV AH, 4CH INT 21H code ENDS END start
程序执行不到返回DOS功能调用处, 最后的结果是死机.
2020/12/10
11
二、汇编语言程序设计举例
例1 将寄存器BX中的内容以十六进制形式显示出来。
(二进制
十六进制)
第六节 汇编语言程序设计
讲课内容 一、概述
1. 编写汇编语言程序步骤 2. 判断程序质量的标准 3. 几种程序结构
二、汇编语言程序设计举例
例1 将寄存器BX中的内容以十六进制形式显示出来。 例2 将键盘输入的十进制数据串转换成其相应大小的数值
存放在BX寄存器中。
2020/12/10
1
一、概述 1. 编写汇编语言程序步骤 2. 判断程序质量的标准 3. 几种程序结构
2020/12/10
13
3. 计算机处理信息时,其对象都是二进制数。 外设(显示器、打印机、键盘等) 用ASCII码与CPU进行信息传送。
例如: (1) 在键盘上按下某一字符键 (如’9’),
键盘接口向键盘缓冲区送去的是该字符的ASCII码(如39H), 不是送数字09H。
( 2) 在文本方式下,要在显示器上显示某一字符(如’A’), 须将该字符的ASCII码(如41H)送显示缓冲区, 不是送数字0AH。
0001 →’1’ 31H , 1011 →’B’ 42H
、、
、、
1001 →’9’ 39H , 1111 →’F’ 46H
2020/12/10
17
算法:
取出要显示的某4位,转换为对应的ASCII码, 再调用DOS系统功能进行显示。
(1) 对于0000~1001(0~9), 先扩展成一个字节,高4位清0, 加上30H后, 即可得字符’0’~’9’对应的ASCII码。
循环初始设置
循环体 循环条件判断? N
Y
直到型循环 (直到条件成立退出循环)
2020/12/10
9
子程结构
1.多处调用完成同一功能的子程:
code SEGMENT start: 、、
CALL subp 、、
CALL subp 、、
CALL subp 、、
MOV AH, 4CH INT 21H
subp subp
15
例 CPU要处理从键盘输入的某一数据,如键入“1234”
需将该数据串进行转换十六进制后才能应用。
CPU处理时
从键盘输入’ 1234’, 缓冲区存放 31H, 32H, 33H, 34H
看作十六进制数输入 1234H
例2
看作十进制数输入
04D2H
2020/12/10
16
例1 将BX寄存器中的内容以十六进制形式显示出来。
0000 0001B + 30H= 31H
0000 1001B + 30H=39H
0001B
‘1’
1001B ‘9’
(2) 对于1010~1111(A~F), 先扩展成一个字节,高4位清0,
PROC 、、 、、
RET ENDP
code ENDS END start
注意返回DOS语句位置
2020/12/10
2.模块化程序设计:
code SEGMENT
begin: CALL sub1 CALL sub2 CALL sub3 MOV AH, 4CH INT 21H
sub1 sub1
PROC 、、
例2 将键盘输入的十进制数据串转换成其相应大小的数值 存放在BX寄存器中。
2020/12/10
12
▲有关字符、数码转换的处理
1. 计算机处理字符时,常用的字符编码是ASCII 码。 2. 数字和字母的ASCII码是一个有序序列
数字0~9 : 30H ~ 39H 大写字母A~Z : 41H ~ 5AH 小写字母a~z : 61H ~ 7AH
2020/12/10
2
一. 编写汇编语言程序步骤 分析实际问题,抽象描述问题的模型 确定解决模型的算法 按算法画出程序流程图 按流程图编写程序 上机调试, 运行程序
2020/12/10
3
2. 判断程序质量的标准 程序的正确性 程序的可读性 程序的执行时间 程序所占内存大小
2020/12/10
十六进制形式显示 41h,39h 显示 ’A9’
十进制形式显示
31h,36h,39h 2Dh, 38h, 37h
显示 ’169’
显示 ’ -87 ’
(无符号数)
(带符号数)
前例
二进制形式显示
31h, 30h, 31h, 30h, 31h, 30h, 30h, 31h 显示 ’10101001’
2020/12/10
RET ENDP
sub2 sub2
PROC 、、
RET ENDP
sub3 sub3
PROC 、、
RET ENDP
code ENDS END begin
10
思考如下程序的执行流程:
code start:
; ;
SEGMENT 、、
CALL subp 、、
CALL subp 、、
MOV AH, 4CH INT 21H
2020/12/10
14
例 将CPU运算的结果通过显示器显示时,如二进制数“A9”
需将结果转换成其对应的ASCII码才能进行显示。
显示缓冲区 存放的内容 (字符的ASCII 码)
CPU运算后所得的二进制数 10101001
例1
4
3.几种程序结构 顺序结构 分支结构 循环结构 子程结构
2020/12/10
5
顺序结构
2020/12/10
6
Y N
两个分支
分支结构
、、、 CMP AL, BL JG great
AL≤BLxit: 、、、 、、、
2020/12/10
7
分支结构
N
Y
N
、、、
CMP AL, 0 JG great JL less
AL=0处理
Y
JMP exit
less: AL<0处理
三个分支
JMP exit great:
AL>0处理 exit: 、、、
2020/12/10
8
循环结构
循环初始设置 循环条件判断? N
Y 循环体
当型循环 (当条件成立进入循环)
▲ BX是一个16位寄存器
二进制 十六进制
1010 1001 0011 1110 A93E
屏幕上的显示 ‘A’ ‘9’ ‘3’ ‘E’ 对应的ASCII 41H 39H 33H 45H
?
▲ 用十六进显示时,每4位用一个字符显示,共4个
其中: 0000 →’0’ 30H , 1010 →’A’ 41H
subp subp
PROC 、、 、、
RET ENDP
MOV AH, 4CH INT 21H code ENDS END start
程序执行不到返回DOS功能调用处, 最后的结果是死机.
2020/12/10
11
二、汇编语言程序设计举例
例1 将寄存器BX中的内容以十六进制形式显示出来。
(二进制
十六进制)
第六节 汇编语言程序设计
讲课内容 一、概述
1. 编写汇编语言程序步骤 2. 判断程序质量的标准 3. 几种程序结构
二、汇编语言程序设计举例
例1 将寄存器BX中的内容以十六进制形式显示出来。 例2 将键盘输入的十进制数据串转换成其相应大小的数值
存放在BX寄存器中。
2020/12/10
1
一、概述 1. 编写汇编语言程序步骤 2. 判断程序质量的标准 3. 几种程序结构
2020/12/10
13
3. 计算机处理信息时,其对象都是二进制数。 外设(显示器、打印机、键盘等) 用ASCII码与CPU进行信息传送。
例如: (1) 在键盘上按下某一字符键 (如’9’),
键盘接口向键盘缓冲区送去的是该字符的ASCII码(如39H), 不是送数字09H。
( 2) 在文本方式下,要在显示器上显示某一字符(如’A’), 须将该字符的ASCII码(如41H)送显示缓冲区, 不是送数字0AH。
0001 →’1’ 31H , 1011 →’B’ 42H
、、
、、
1001 →’9’ 39H , 1111 →’F’ 46H
2020/12/10
17
算法:
取出要显示的某4位,转换为对应的ASCII码, 再调用DOS系统功能进行显示。
(1) 对于0000~1001(0~9), 先扩展成一个字节,高4位清0, 加上30H后, 即可得字符’0’~’9’对应的ASCII码。
循环初始设置
循环体 循环条件判断? N
Y
直到型循环 (直到条件成立退出循环)
2020/12/10
9
子程结构
1.多处调用完成同一功能的子程:
code SEGMENT start: 、、
CALL subp 、、
CALL subp 、、
CALL subp 、、
MOV AH, 4CH INT 21H
subp subp
15
例 CPU要处理从键盘输入的某一数据,如键入“1234”
需将该数据串进行转换十六进制后才能应用。
CPU处理时
从键盘输入’ 1234’, 缓冲区存放 31H, 32H, 33H, 34H
看作十六进制数输入 1234H
例2
看作十进制数输入
04D2H
2020/12/10
16
例1 将BX寄存器中的内容以十六进制形式显示出来。
0000 0001B + 30H= 31H
0000 1001B + 30H=39H
0001B
‘1’
1001B ‘9’
(2) 对于1010~1111(A~F), 先扩展成一个字节,高4位清0,
PROC 、、 、、
RET ENDP
code ENDS END start
注意返回DOS语句位置
2020/12/10
2.模块化程序设计:
code SEGMENT
begin: CALL sub1 CALL sub2 CALL sub3 MOV AH, 4CH INT 21H
sub1 sub1
PROC 、、
例2 将键盘输入的十进制数据串转换成其相应大小的数值 存放在BX寄存器中。
2020/12/10
12
▲有关字符、数码转换的处理
1. 计算机处理字符时,常用的字符编码是ASCII 码。 2. 数字和字母的ASCII码是一个有序序列
数字0~9 : 30H ~ 39H 大写字母A~Z : 41H ~ 5AH 小写字母a~z : 61H ~ 7AH
2020/12/10
2
一. 编写汇编语言程序步骤 分析实际问题,抽象描述问题的模型 确定解决模型的算法 按算法画出程序流程图 按流程图编写程序 上机调试, 运行程序
2020/12/10
3
2. 判断程序质量的标准 程序的正确性 程序的可读性 程序的执行时间 程序所占内存大小
2020/12/10
十六进制形式显示 41h,39h 显示 ’A9’
十进制形式显示
31h,36h,39h 2Dh, 38h, 37h
显示 ’169’
显示 ’ -87 ’
(无符号数)
(带符号数)
前例
二进制形式显示
31h, 30h, 31h, 30h, 31h, 30h, 30h, 31h 显示 ’10101001’
2020/12/10
RET ENDP
sub2 sub2
PROC 、、
RET ENDP
sub3 sub3
PROC 、、
RET ENDP
code ENDS END begin
10
思考如下程序的执行流程:
code start:
; ;
SEGMENT 、、
CALL subp 、、
CALL subp 、、
MOV AH, 4CH INT 21H