第03章-汇编语言程序设计1-顺序结构程序设计课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
取原数据 截取低4位 保存低位16进制数
结束
•
MOV SP,SIZE STK
•
MOV AL,DATA
•
MOV AH,AL
•
AND AL,0F0H
•
MOV CL,04
•
SHR AL,CL
•
MOV HEX,AL
•
AND AH,0FH
•
MOV HEX+1,AH
•
MOV AX,4C00H
•
INT 21H
第03章-汇编语言程序设计1-顺序结构程序设计
则该操作可分以下几步完成: 最低字节取补; 进位取反; 中间字节取反的结果加进位; 高字节取反的结果加进位。
第03章-汇编语言程序设计1-顺序结构程序设计
开始
SSEG STK SSEG
SEGMENT
STACK
DB
源自文库
20 DUP(0)
ENDS
设置数据段地址 设置堆栈段地址
设置堆栈指针
DSEG SEGMENT
顺序结构程序设计
第03章-汇编语言程序设计1-顺序结构程序设计
汇编语言的特点
• 汇编语言是一种以处理器指令系统为基础的低级程序设计语言, 它采用助记符表达指令操作码,采用标识符号表示指令操作数
• 利用汇编语言编写程序的主要优点是可以直接、有效地控制计算 机硬件,因而容易创建代码序列短小、运行快速的可执行程序
参考资料
第03章-汇编语言程序设计1-顺序结构程序设计
简化• 段定.mo义del的sm源all 程序;小格型模式式存储模式
• .stack ; 1KB空间堆栈段 • .data ;数据段 • …… ;数据定义 • .code ;代码段 • start: mov ax,@data ;起始点 • mov ds,ax ;设置DS • …… ;程序代码 • mov ax,4c00h • int 21h ;结束点,返回DOS • …… ;子程序代码 • end start ;汇编结束
例题1:顺序程序设计实例 采用查表法,实现一位16进制数 转换为ASCII码显示
第03章-汇编语言程序设计1-顺序结构程序设计
例1;:数据数段据段
ASCII db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h ;对应0 ~ 9的ASCII码 db 41h,42h,43h,44h,45h,46h ;对应A ~ F的ASCII码
DATA1
DB
DATA2
DB
35H,26H,03H 3 DUP(0)
低字节取补 进位取反
DSEG ENDS
中间字节取反
CSEG SEGMENT
ASSUME
CS:CSEG,DS:DSEG
加进位
ASSUME
SS:SSEG
高字节取反
MBNEG: MOV
MOV AX,DSEG DS,AX
加进位
MOV AX,SSEG
保存结果
MOV
SS,AX
结束
第03章-汇编语言程序设计1-顺序结构程序设计
•
MOV
SP,SIZE STK
•
MOV AL,DATA1
•
MOV AH,DATA1+1
•
MOV BL,DATA1+2
•
NEG AL
•
CMC
•
NOT AH
•
ADC AH,0
•
NOT BL
•
ADC BL,0
•
MOV DATA2,AL
第03章-汇编语言程序设计1-顺序结构程序设计
第03章-汇编语言程序设计1-顺序结构程序设计
例1:代m码ov段dl,a(l 续;入)口参数:DL←AL
mov ah,2 ;02号DOS功能调用 int 21h ;显示一个ASCII码字符 mov al,hex+1 ;转换并显示下一个数据 and al,0fh xlat mov dl,al mov ah,2 int 21h
第03章-汇编语言程序设计1-顺序结构程序设计
顺序结构程序举例
• 例2、计算y=-x。设x为三个字节长的数据,存于 DATA1开始的单元。结果存入DATA2开始的单元。
分析:数以补码存储,已知[x]补,求[-x]补,对三字节数据无法直接运用求补指令NEG, 可应用对原数据包括符号位在内取反加1的办法。 又知使用NEG指令对一个字节数据取补时,若数据非0,则CF=1
H
H
H
H
L
L
L
L
0 0 0 0 HHHH 0 0 0 0LLLL
HEX HEX+1
第03章-汇编语言程序设计1-顺序结构程序设计
SSEG SEGMENT
STACK
STK DB 20 DUP(0)
SSEG ENDS
DSEG SEGMENT
DATA
DB 0B5H
HEX
DB 2 DUP(0)
DSEG ENDS
• 在有些应用领域,汇编语言的作用是不容置疑和无可替代的 • 汇编程序设计的过程与其他高级语言程序设计大致相同
第03章-汇编语言程序设计1-顺序结构程序设计
顺序程• 没序有分设支计、循环等转移指令的程序,会按指令书
写的前后顺利依次执行,这就是顺序程序 • 顺序结构是最基本的程序结构 • 完全采用顺序结构编写的程序并不多见
hex db 04h,0bh ;假设两个数据
第03章-汇编语言程序设计1-顺序结构程序设计
例1:代码;代段码段
mov bx,offset ASCII ;BX指向ASCII码表 mov al,hex ;AL取得一位16进制数 ;恰好就是ASCII码表中的位移 and al,0fh ;只有低4位是有效的,高4位清0 xlat ;换码:AL←DS:[BX+AL]
CSEG SEGMENT
ASSUME
CS:CSEG,DS:DSEG
ASSUME
SS:SSEG
DISC:
MOV AX,DSEG
MOV DS,AX
MOV AX,SSEG
MOV SS,AX
第03章-汇编语言程序设计1-顺序结构程序设计
开始
设置数据段地址 设置堆栈段地址 设置堆栈指针
取数据 截取高4位
右移4位 保存高位16进制数
•
MOV DATA2+1,AH
•
MOV DATA2+2,BL
•
MOV 第A03X章,4-汇C编0语0言H程序设计1-顺序结构程序设计
• [例3]设内存DATA单元存放一个无符号字节数据,编 制程序将其拆成两位16进制数,并存入HEX和HEX+1 单元的低4位,HEX存放高位16进制数,HEX+1单元 存放低位16进制数。
结束
•
MOV SP,SIZE STK
•
MOV AL,DATA
•
MOV AH,AL
•
AND AL,0F0H
•
MOV CL,04
•
SHR AL,CL
•
MOV HEX,AL
•
AND AH,0FH
•
MOV HEX+1,AH
•
MOV AX,4C00H
•
INT 21H
第03章-汇编语言程序设计1-顺序结构程序设计
则该操作可分以下几步完成: 最低字节取补; 进位取反; 中间字节取反的结果加进位; 高字节取反的结果加进位。
第03章-汇编语言程序设计1-顺序结构程序设计
开始
SSEG STK SSEG
SEGMENT
STACK
DB
源自文库
20 DUP(0)
ENDS
设置数据段地址 设置堆栈段地址
设置堆栈指针
DSEG SEGMENT
顺序结构程序设计
第03章-汇编语言程序设计1-顺序结构程序设计
汇编语言的特点
• 汇编语言是一种以处理器指令系统为基础的低级程序设计语言, 它采用助记符表达指令操作码,采用标识符号表示指令操作数
• 利用汇编语言编写程序的主要优点是可以直接、有效地控制计算 机硬件,因而容易创建代码序列短小、运行快速的可执行程序
参考资料
第03章-汇编语言程序设计1-顺序结构程序设计
简化• 段定.mo义del的sm源all 程序;小格型模式式存储模式
• .stack ; 1KB空间堆栈段 • .data ;数据段 • …… ;数据定义 • .code ;代码段 • start: mov ax,@data ;起始点 • mov ds,ax ;设置DS • …… ;程序代码 • mov ax,4c00h • int 21h ;结束点,返回DOS • …… ;子程序代码 • end start ;汇编结束
例题1:顺序程序设计实例 采用查表法,实现一位16进制数 转换为ASCII码显示
第03章-汇编语言程序设计1-顺序结构程序设计
例1;:数据数段据段
ASCII db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h ;对应0 ~ 9的ASCII码 db 41h,42h,43h,44h,45h,46h ;对应A ~ F的ASCII码
DATA1
DB
DATA2
DB
35H,26H,03H 3 DUP(0)
低字节取补 进位取反
DSEG ENDS
中间字节取反
CSEG SEGMENT
ASSUME
CS:CSEG,DS:DSEG
加进位
ASSUME
SS:SSEG
高字节取反
MBNEG: MOV
MOV AX,DSEG DS,AX
加进位
MOV AX,SSEG
保存结果
MOV
SS,AX
结束
第03章-汇编语言程序设计1-顺序结构程序设计
•
MOV
SP,SIZE STK
•
MOV AL,DATA1
•
MOV AH,DATA1+1
•
MOV BL,DATA1+2
•
NEG AL
•
CMC
•
NOT AH
•
ADC AH,0
•
NOT BL
•
ADC BL,0
•
MOV DATA2,AL
第03章-汇编语言程序设计1-顺序结构程序设计
第03章-汇编语言程序设计1-顺序结构程序设计
例1:代m码ov段dl,a(l 续;入)口参数:DL←AL
mov ah,2 ;02号DOS功能调用 int 21h ;显示一个ASCII码字符 mov al,hex+1 ;转换并显示下一个数据 and al,0fh xlat mov dl,al mov ah,2 int 21h
第03章-汇编语言程序设计1-顺序结构程序设计
顺序结构程序举例
• 例2、计算y=-x。设x为三个字节长的数据,存于 DATA1开始的单元。结果存入DATA2开始的单元。
分析:数以补码存储,已知[x]补,求[-x]补,对三字节数据无法直接运用求补指令NEG, 可应用对原数据包括符号位在内取反加1的办法。 又知使用NEG指令对一个字节数据取补时,若数据非0,则CF=1
H
H
H
H
L
L
L
L
0 0 0 0 HHHH 0 0 0 0LLLL
HEX HEX+1
第03章-汇编语言程序设计1-顺序结构程序设计
SSEG SEGMENT
STACK
STK DB 20 DUP(0)
SSEG ENDS
DSEG SEGMENT
DATA
DB 0B5H
HEX
DB 2 DUP(0)
DSEG ENDS
• 在有些应用领域,汇编语言的作用是不容置疑和无可替代的 • 汇编程序设计的过程与其他高级语言程序设计大致相同
第03章-汇编语言程序设计1-顺序结构程序设计
顺序程• 没序有分设支计、循环等转移指令的程序,会按指令书
写的前后顺利依次执行,这就是顺序程序 • 顺序结构是最基本的程序结构 • 完全采用顺序结构编写的程序并不多见
hex db 04h,0bh ;假设两个数据
第03章-汇编语言程序设计1-顺序结构程序设计
例1:代码;代段码段
mov bx,offset ASCII ;BX指向ASCII码表 mov al,hex ;AL取得一位16进制数 ;恰好就是ASCII码表中的位移 and al,0fh ;只有低4位是有效的,高4位清0 xlat ;换码:AL←DS:[BX+AL]
CSEG SEGMENT
ASSUME
CS:CSEG,DS:DSEG
ASSUME
SS:SSEG
DISC:
MOV AX,DSEG
MOV DS,AX
MOV AX,SSEG
MOV SS,AX
第03章-汇编语言程序设计1-顺序结构程序设计
开始
设置数据段地址 设置堆栈段地址 设置堆栈指针
取数据 截取高4位
右移4位 保存高位16进制数
•
MOV DATA2+1,AH
•
MOV DATA2+2,BL
•
MOV 第A03X章,4-汇C编0语0言H程序设计1-顺序结构程序设计
• [例3]设内存DATA单元存放一个无符号字节数据,编 制程序将其拆成两位16进制数,并存入HEX和HEX+1 单元的低4位,HEX存放高位16进制数,HEX+1单元 存放低位16进制数。