- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编程序举例课件
第4章汇编程序举例;4.4.2 顺序程序;结束;;;[例4—17] 内存自TABLE开始的连续16个单元中存放着0~15的平方值(称平方表),查表求DATA中任意数X(0≤X≤15)的平方值,并将结果放在RESULT中.
DSEG SEGMENT
TABLE DB 0,1,4,9,16,25,36, 49,64,81,100,121,
144,169,196,225 ;定义平方表
DATA DB ?
RESULT DB ? ;定义结果存放单元
DSEG ENDS
SSEG SEGMENT STACK STACK
STA DW 100 DUP(?) ;定义堆栈空间
TOP EQU LENGTH STA
SSEG ENDS; CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG, SS:SSEG
BEGIN: MOV AX,DSEG ;初始化数据段
MOV DS,AX
MOV AX,SSEG ;初始化堆栈
MOV SS,AX
MOV SP,TOP ;置堆栈指针
LEA BX,TABLE ;置数据指针 MOV AH,0
MOV AL,DATA ;取待查数
ADD BX,AX ;查表
MOV AL,[BX]
MOV RESULT,AL ;平方数存RESULT
MOV AH,4CH
INT 21H
CSEG ENDS
END BEGIN;4.4.3 分支程序设计 ;[例4-18] 编写程序,将数据区中以字节变量BUFFER为首地址的100个单元清零。
DATA SEGMENT
BUFFER DB 100 DUP(?)
COUNT DB 100 ;定义数据缓冲区长度
DATA ENDS
STACK SEGMENT ‘STACK’
DW 32 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX ;初始化数据段; MOV AX,STACK
MOV SS,AX ;初始化堆栈段
MOV CL,COUNT ;置单元长度
MOV CH,0
LEA BX,BUFFER
AGAIN:MOV [BX],0 ;实现100个单元清零
INC BX
INC CH
CMP CH,CL
JB AGAIN ;CHCL则转移
MOV AH,4CH
INT 21H
CODE ENDS
END START;;[例4-19] 在数据段DATA1开始的80个连续的存储单元中,存放80位同学某门课程的考试成绩(0~100)。编写程序统计成绩≥90分的人数,80~89分的人数,70~79分的人数,60~69分以及60分的人数。将结果存放到DATA2开始的存储单元中。
DATA SEGMENT
DATA1 DB 80 DUP(?) ;假定学生成绩已放入这80个单元中
DATA2 DB 5 DUP(0) ;统计结果的存放单元
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX; MOV CX,80 ;统计80个学生
L
文档评论(0)