微型计算机原理及应用(第三版)电子备课第7章ppt下载(4)
如把表中元素按值的大小倒序或升序排列。①设计要求:设源程序代码段中有无序字符表将其按代码值大小倒序排序显示排序前后字符表显示完提示OK字符。②程序算法:气泡排序是一种常用的排序方式它的规则是:表中相邻两元素一一比较并把大值元素向上交换直到表尾(大值元素落底)此刻称为一次冒泡(程序中一次大循环)。之后重复冒泡排序直到最小元素冒到表顶为止。若在一次冒泡排序中没有出现两元素交换(设标识为)则停止排序。③程序步骤(如图所示)图④程序清单如下::NAMEEX:CODESSEGMENT:ORGH:ASSUMECS∶CODES:STAR∶JMPSSTT:ASCIIDB′GAJXYDEBFIPKWR′:DB′QOUZVCHMST′:COUNT=$ASCII:OKDBDHAH′OK!$′:SSTT∶MOVAXCS:MOVDSAX:MOVDLCOUNT:MOVDH:XORBXBX:L∶ORDHDH:JZL:MOVDH:MOVCXCOUNT:SUBCXBX:MOVSIOFFSETASCII:L∶MOVAL[SI]:INCSI:CMPAL[SI]:JBEL:XCHGAL[SI]:MOV[SI]AL:MOVDH:L∶LOOPL:INCBX:DECDL:JNZL:L∶MOVDXOFFSETASCII:MOVAH:INTH:INTH:CODESENDS:ENDSTAR【例】()设计要求求y=abab显示运算结果(十六补码方式)。
ab是两个单字节无符号数并在数据段中定义结果存在这两个数后来约定个字节。子程序结构要求:两字节相加、一个字节数显示、多字节数显示设计成个子程序。多字节数显示子程序嵌套一个字节数显示子程序。程序层次结构如图所示。子程序选用短程(段内)直接读取主程序与子程序间参数传递用储存器约定单元。()程序步骤(如图和图、图所示)图图图图子程序:PP功能:显示多字节数(十六补码)。入口:显示数据在Y单元宽度字节。出口:显示十六补码数()程序清单::NAMEEX:PAGE:DATSEGMENT:ADB:BDB:YDBDUP():ZDB:DATENDS:STASEGMENTSTACK:DWDUP():STAENDS:CODSEGMENT:ASSUMECS:CODDS∶DAT:STARPROCFAR:PUSHDS:XORAXAX:PUSHAX:MOVAXDAT:MOVDSAX:MOVAXSTA:MOVSSAX::MOVALA:MOVZAL:MOVZAL:CALLEX:MOVALB:MOVZAL:MOVZAL:CALLEX:MOVALA:MOVZAL:MOVALB:MOVZAL:CALLEX:ADDWORDPTRYAX:ADCBYTEPTR[Y]:CALLPP:RET:STARENDP::EXPROC:MOVALZ:MOVAHZ:MULAH:ADDWORDPTRYAX:ADCBYTEPTR[Y]:RET:EXENDP:PPPROC:LEASIY:ADDSI:MOVCX:P∶MOVAL[SI]:CALLPP:DECSI:LOOPP:RET:PPENDP::PPPROC:PUSHAX:PUSHBX:PUSHCX:PUSHDX:MOVBHAL:MOVBL:MOVCL:SHRALCL:GG∶CMPAL:JGEGG:ORALH:JMPGG:GG∶ADDALH:GG∶MOVDLAL:MOVAH:INTH:DECBL:JZGG:MOVALBH:ANDALFH:JMPGG:GG∶POPDX:POPCX:POPBX:POPAX:RET:PPENDP::CODENDS:ENDSTAR例题在数据区中以TABLE开始连续储存~的立方值(称为立方表)设任给一数x(≤x≤)x在TAB单元查表求x的立方值并把结果存入TAB单元。假定师生某门课的成绩储存在数据区中请编一程序统计该成绩中大于分的数量~分的数量小于分的数量并显示在屏幕上。在数据区中以如下形式储存数据:DATASEGMENTLISTDBDBDBLISTDB编一个十补码的减法程序被乘数和因数均以ASCII码的方式储存在显存上将相乘在屏幕上显示下来
定位明确