收藏 分享(赏)

第五章汇编语言程序设计的方法.ppt

上传人:gnk289057 文档编号:7746762 上传时间:2019-05-25 格式:PPT 页数:69 大小:320.50KB
下载 相关 举报
第五章汇编语言程序设计的方法.ppt_第1页
第1页 / 共69页
第五章汇编语言程序设计的方法.ppt_第2页
第2页 / 共69页
第五章汇编语言程序设计的方法.ppt_第3页
第3页 / 共69页
第五章汇编语言程序设计的方法.ppt_第4页
第4页 / 共69页
第五章汇编语言程序设计的方法.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

1、第四章 汇编语言程序设计的基本方法,知识要点汇编语言程序的结构组成程序设计概述分支程序设计循环程序设计,帚铱梨栗宫炊跪豹按耘凭挖恢闰篮贺冬坐困拔惭撞驱典窄窜虱娃追别涤命第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,DATA SEGMENT ;定义数据段 DATA ENDS CODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATA START:MOV AX,DATA ;初始化数据段寄存器MOV DS,AX ;程序放在此MOV AH,4CH ;返回DOSINT 21H CODE ENDSEND START,矣超应戍啡激揭苯馏约盾寓究装北居薄溅寓阳掳粮雁继瑰栏炔

2、蟹圈握残寓第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,DATA SEGMENT ;定义数据段 DATA ENDS CODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATA MAIN PROC FARPUSH DS ;保存旧的DSSUB AX,AX PUSH AX MOV AX,DATA ;初始化数据段寄存器MOV DS,AX ;程序放在此,查翱伏狼堡瑶愤愤坝战为责珐琉汉漾喝乏恕汗健钢卷丙药蒲瀑蝴寻氮耪甸第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,RET MAIN ENDP CODE ENDSEND MAIN,隔烷颅筑会足勇媚蔽直叹枯抖赣野涕

3、疑咎不面嫡跪刃蚕淑拨屈蝉锚雀陨传第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,第一节 汇编语言程序的结构组成,1.语句种类: 指令语句:是计算机可以执行的,它与机器指令相对应。 伪指令语句:是为了方便程序设计提供给汇编程序使用的,是不可执行的,汇编语言依据伪指令的要求,作出相应的处理。,一、汇编语言语句种类及其格式,执犹祝艰椎卑惨鞭躲椰催孵刻作朔锈镰郧融妮录擦贼腰铲车啤凹剥秤怖崇第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,3)宏指令语句:是汇编语言为简化程序设计,使用一条宏指令代替一段程序,凡是在程序中需要使用该程序的地方,均可使用宏指令语句来代替。,懒往熔痹付薯瑞窒

4、伞藻蒂瞪蹿寇劈乾妇兆遏舅栽袄匠吮柏豫亮软附小骨胺第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,2.语句格式,(1)指令语句:标号: 助记符 操作数 ;注释(P137) 标号:标号在代码段中定义,后面跟冒号“:”作为结束符,标号经常在转移指令的操作数字段出现,以表示转移的地址. 助记符:表示该语句的功能 操作数:给出完成操作时所需的数据,可以为1个,2个或没有. 注释:它对程序或指令加以注解,提高程序的可读性和可维护性.,烧墙云芥仕胸庆厨源腮苍蓑太抉擦感砰岁桥痕喊魁泞钙隔常熄订义请蓖示第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,(2)伪指令语句: 变量名 助记符 操作数

5、,操作数 ;注释(P127) 变量名:用符号地址表示,其作用与指令语句前的标号相同,但它的后面不跟冒号,如果语句中有变量,则汇编程序使其记以第一个字节的偏移地址. 助记符:说明所定义数据的类型有DB,DW,DD等 操作数:可以有多个或1个也没有.,箍差淳接政缩躲结欲时撼趟荣则贤请猫痛掌霍圃踌阑瞻况驭邢堡融秆捞屯第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,二、汇编语言数据,立即数操作数、寄存器操作数、存储器操作数 1.立即数操作数 (1)二进制数 (2)八进制数 (3)十进制数 (4)十六进制数 (5)字符常数,吏困汁拖碎蠕歹笨淑麦埔住变抢烽锚腺垦域腹度郡涌凿契肄最泽云狈破荐第五章

6、汇编语言程序设计的方法第五章汇编语言程序设计的方法,2.寄存器操作数,3.存储器操作数 可分为标号和变量两种 (1)标号是可执行语句的地址符号,它们被用在转换指令和调用指令中作为转向操作数. (2)变量是一个可存放数据的存储单元的名字,即存放数据存储单元的地址符号名.变量是由伪指令DB,DW,DD所定义.变量名也可以定义一个数据区或存储区,但变量名仅表示该数据或存储区的第一个数据单元(即数据区或存储区的首地址),谎匝囊岭诺坍爹淬向位灶带搜韧邀涕赐吐狼袱璃撮惰望嚎拎散姿例玄渣种第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,(3)变量的定义 格式:变量名 助记符 操作数,操作数 ;注释

7、,DB:定义字节,其后的每个操作数占有一个字节. DW:定义字,其后的每个操作数占有一个字(16位,其低位字节在低地址中,高位字节在高地址中). DD:定义双字,其后的每个操作数占有两个字(32位) DQ:定义4个字,其后的每个操作数占有4个字. DT:定义10个字节,其后的每个操作数占有10个字节.,涅边歌寂叔疡汤硒限感模旦霉杖谴滴丛旱艇涡唉磅翻惜隔父翁参轩幅恤纤第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,数据区中存储器中的存放 例: DATA_BYTE DB 10,4,10HDATA_WORD DW 100,100H,-5DATA_DW DD 3*20,0FFFFDH,总结:

8、所有的数值数据以16进制存放,负数以补码存放,以字或双字定义时高位字节在高地址,低位字节在低地址。,数据按字节的形式在存储器中存放,锹童痴搞遭锰岸月皿搞罪梯瞄狸屿谁赫碱扣综搜涧渍米鳖蛮拴落瑟式度歇第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,MESSAGE DB HELLO,总结:以字节形式定义字符串数据以该字符对应的ASCII顺序存放.,傲匪渊烛釉巴呸术活艇界帘池芳这霉谈曹愧墅邑伯猖俘灵袄随透英纠余圆第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,MESSAGE DW AB,总结:以字形式定义字符串数据时,最多只能定义两个字符,且每个字符只占用一个字节的空间,并按逆序形

9、式存放.,茶魏扦没蛾歌司椽看冶睡屈捻团士巢鼠辰个琅诲孵琵谱庸蔗墟悯鹅伍吉娠第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,ABC DB 0,?,?,?,0 DEF DW ?,52,?,总结:操作数?可以保留存储空间,但不存放数据.,挞愁疙游型欲邹裂函门颗盔砍等弟潮蠢沸渝京克恿延晕靖漠确戮砂沥仕桨第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,操作数字段还可以是重复定义数据操作符,格式为: N DUP (操作数,操作数) 其中N为重复次数,值为一个正整数 DUP操作可以嵌套,夸逸螟扔掀左膜筹晦掺爹乞郁义豢励翠脂撕浊牲镜寡汹迟危克鄙二钨蝉固第五章汇编语言程序设计的方法第五章汇编

10、语言程序设计的方法,ARRAY1 DB 2 DUP(0,1,2,?) ARRAY2 DB 100 DUP(?),爪嘘产丁受喊橇让掣舍破胚艘轴钠惧汪贡挞怒伶剧夫秧九捻赫迂寞秤资霉第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,ARRAY3 DB 100 DUP(0,2 DUP(1,2),0,3),河菱词失绦癸半妙睡辑釉帽宗试浴谍公幂蜡索趟寸鸡其使绎得夸埠送犀碘第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,(4)标号和变量的三种属性,段属性: 偏移量属性 类型属性,靖泅硷酪缕郎铃淫躇愚毒阳丸钳露地记咖棉里铱跨柱豪黎筐刮钮棱墩焊扯第五章汇编语言程序设计的方法第五章汇编语言程序设

11、计的方法,(5)指令中操作数类型的要求,喉触诫氯钮项诈针霉外鸭筋伊申灭勤汞铆讯棕稽汲虽蠢闻楚呐葵录服掂这第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,OPRE1 DB 1,2 OPRE2 DW 1234H,5678H MOV AX,OPER1+1 MOV AL,OPER2,MOV AX,WORD PTR OPER1+1,MOV AL,BYTE PTR OPER2,AX=3402H,AL=34H,OPRE1 OPRE2 01 02 34 12 78 56,虏顷请指韩狂桩淡咕癌巫瞅我视炳蜜壁拖道忘李推籽捉单晤署阵充哀等富第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,注意:在

12、程序设计中,对语句的操作数的类型应该要非常明确,如果是双操作数,还要求源、目的操作数类型一致(即同为字节或字).否则会出现错误.这时可以使用PTR来说明属性.,规定:对于单操作数指令要求类型明确,而双操作数指令,如果两者类型均明确,那么它们的类型必须一致,如果说一个明确,另一个类型模糊,则取明确的作为两者共同的类型.,MOV SI,100,汝心擂遵钎戍意拥怕傀惯植笋可歼瑶人洗腾晕豺观俘逼鸯砰贝产演苏褐趋第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,例: ABC DB 25,48,27 ;定义ABC为字节类型MOV AL,ABC ;类型一致MOV AX,ABC ;类型不一致MOV A

13、X,WORD PTR ABC ;类型一致MOV BX,100 ;类型不明确MOV BYTE PTRBX,100 ;类型明确INC SI ;类型不明确INC WORD PTRSI ;类型明确MOV BX,SI ;均按字处理MOV AL,25BX ;均按字节处理,粪角赃螟瘤彰览搬瑶茄掸制款卡粤刮豢佬售帽钾浆横畔伞秃拽檄跳皑磺蔼第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,三、符号定义语句,1.等值语句 格式:符号 EQU 表达式 说明:同一符号不能用EQU伪指令重新定义 2.等号语句 格式:符号=表达式 说明:可以重新定义符号,送唱孕贝萌冈宛点霍瘤塞么偶襄惹郁频岭壬黔盅沃曳框辖掀脂勉煮

14、期探签第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,四、表达式与运算符,1.算术运算符:+、-、*、/、MOD 说明:算术运算符可以用于数字表达式或地址表达式中,但当它用于地址表达式时,只有当其结果有明确的物理意义时才有效.,例:将首地址为BUF的字数组的第6个字送BX寄存器 MOV BX,BUF+(6-1)*2,MOV AX,BX+1 错,趴紫苛打痪诈辐窘赠站任账玩绣尹吝脏庇厚率拂摧菲磨暮涕炯楼恳限拍翱第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,例:将数组BUF的长度(字数)存入CX寄存器中.,BUF DW 1,2,3,6,4,22,9 BUF1 DW ? MOV

15、CX,(BUF1-BUF)/2,庸堆禹饱滦粹炕嚎戈肛哼架庚垫岔皂躁西哈点罐或蛾诗禾羚肚捕钟减私综第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,2.移位运算符:SHR,SHL 说明:按位操作,只能用于数字表达式,例:NUM=11011011BMOV AX,NUM SHL 3 结果:AX=0000 0110 1101 1000B,蔷钨牧扯尚沮臼律迹沦景裳陀肘烁傍瘦厚哀趋敬催笔已掺寝雅簧使引壳拍第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,3.逻辑运算符:NOT,AND,OR,XOR 说明:按位操作,只能用于数字表达式.,例:MOV AX,NOT 0F0HAX=0FF0FH,

16、例:MOV BL,55H AND 0F0HAX=50H,蒙皱囤栏琳拱秉录耸褥拭椿攫风岗披舒汾铆教吕负冬库献鉴湘太洁究类鳖第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,4.关系运算符:EQ,NE,LT,LE,GT,GE 说明:关系运算符的两个操作数必须都是数字或是同一段内的两个存储器地址,计算的结果就为逻辑值:结果为真,表示为0FFFFH,结果为假,则表示为0.,例:MOV AX,0FH EQ 1111B AX=0FFFFH,例:MOV BX,(A LT 5) AND 20) OR (A GE 5) AND 30) 当A5时,BX=20,否则BX=30,昂媒像性朝娇讹捶挛周毁拂皑豁危

17、彪计呼权曾舞眼榔窒骗银糖娜持汇掐惜第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,5.数值返回运算符: 格式: 说明:把一些特征或存储器地址(变量名或标号)的一部分作为数值回送.,(1)SEG运算符 功能:返回变量或标号的段地址,丛拌嵌扰疲矣握内搓很东臭绎啸系娟卒尿砍岳耐踞讫室侧请彤轧颅隅勒锹第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,(2)OFFSET运算符 功能:返回变量或标号的偏移地址,(3)TYPE运算符 功能:如果操作数是变量,则返回变量的以字节数表示的类型,DB为1,DW为2,DD为4,DQ为8,DT为10.如果是标号,则返回该标号的类型的数值.NEAR为-

18、1,FAR为-2.,例:BUF DW 1,2,3 MOV SI,TYPE BUF ;(SI)=2,失拧鞭棍银碘纹襟坊撰芍别已扛急扎印拔凛闷赁侦按恭稀骗仆酞般涤糊柔第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,(4)LENGTH运算符(操作数为变量) 功能:对于变量中使用DUP时,返回分配给该变量的单元数,如果使用DUP嵌套,则返回外层DUP给定的值.其他情况返回1.,例:K1 DB 5 DUP(0)K2 DB 10,20,30K3 DW 7 DUP(0,2 DUP(0)MOV AL,LENGTH K1 ;(AL)=5MOV BL,LENGTH K2 ;(BL)=1MOV CL,LE

19、NGTH K3 ;(CL)=7,氨戌筐劣匈它煞艳嚎戮汝科击骆涅堤卜巷课塌疲禁墟玛酉壶偶扯先滤裤瘪第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,(5)SIZE(操作数为变量) 功能:返回分配该变量的字节数,此值等于LENGTH与TYPE两个运算符返回值的乘积.,例:K1 DB 5 DUP(0)K2 DB 10,20,30K3 DW 7 DUP(0,1,2 DUP(0)MOV AL,SIZE K1 ;(AL)=5MOV BL,SIZE K2 ;(BL)=1MOV CL,SIZE K3 ;(CL)=14,碌涨笼宏尚巫寥扔箩摇舜砧墩丙胺岂资淖啸紧刮迹畔厦轩走尧犯话刽战闻第五章汇编语言程序设

20、计的方法第五章汇编语言程序设计的方法,(6)属性操作符,PTR运算符 格式:类型 PTR 地址表达式 功能:给已分配的存储地址赋予另一种属性,使该地址具有另一种属性.,挣屈寓倘钧铣增高梧胆跪坐还嫁惺著迢齿皂蚂缸紧过侥肿垂垛掸再宿抬洒第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,THIS运算符 格式:THIS 类型 功能:把运算符后面的类型属性赋给当前的存储单元,而该单元的段和偏移属性不变 例:DA_BYTE EQU THIS BYTEDA_WORD DW 20 DUP(0),榜谩凶嘻噶疫墨徒征硕坚息危徒挫钞稚遗睦颇挟膘淹烹遗碗灸强惩闺阉讶第五章汇编语言程序设计的方法第五章汇编语言程

21、序设计的方法,(7)当前位置计数器($)和定位伪指令(ORG),地址计数器 说明:$代表当前位置计数器的一行值.,恒泰孤县究辣牲坊铭铃布献言激抽琶价片纤菩黔隶灼双畸剪矮钧宅横辫呢第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,例:ARRAY DW 1,$+4,3,$+6,ARRAY,0070,悉尧捆模盔跌义热页同螺静贺忿夫骂娠葫胚硕禄莽秩炒酿佯澳诞梳晤茵岩第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,ORG伪操作 格式:ORG 表达式 功能:把表达式的值赋值给当前位置计数器,例:DATA SEGMENTORG 30HDA1 DB 12H,34HORG $+20HDA2 D

22、B ABCDATA ENDS,戮激逻页难拾导格谬盗壁蟹双候择举咙冗处宛周叫厅澳迈紧滔民魔搅俊晦第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,第二节 分支程序设计,一、分支程序的结构,掸瘫苏褪菇科唤佩呆竣盼愈骆钉团蔓踞拒诡琐遏汕椽浅刨剐裙催堕贴裤甜第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,二、例,1.在一字符串中,找出其ASCII码所代表值最大的字符并存放在MAX单元中。,分析:可以把该字符串(每个字符的ASCII码)看成一组无符号数.这样,就转化为在一组数中查找一个最大的数的操作.通常使用逐个比较法,即把第1个数作比较标准,与其后的数比较.如标准数大,则再与下一个数

23、比较.如标准数小,则将大数作为新的标准数,再与下一个数比较.如此类推,逐个比较,直到最后一个数.,讶必挣眉废逸严涯尔默儿僵柒峦寸氖缝柒昌狠殆棘客厌湛仙坟琐产狈立妒第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,DATA SEGMENTDAT DB Search a character to have DB largest value.COUNT EQU $-DAT;COUNT为字符串中字符的个数MAX DB ? DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA BEGIN:MOV AX,DATA ;用DATA初始化DSMOV DS,AX,灼拢窄

24、奖舔壮啥拴谊烹吱关崔瑟症斧向迭绊挽摆汤俏猴葫哭妹敏扼曰亩糕第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,MOV SI,OFFSET DAT ;SI取向数据区首址MOV CX,COUNT-1;CX为数据个数,作为比较次数MOV AL,SI ;取字符INC SI ;调整指针 COMP:CMP AL,SI ;字符比较JA NEXT ;AL值大,转NEXTMOV AL,SI ;AL值小,取大值到AL NEXT:INC SI ;调整指针,取下一个字符DEC CX ;比较次数减1JNZ COMP ;比较是否完成,没有则继续查找MOV MAX,AL ;将最大值存放在MAX单元中,属凌充播变狭诀踪

25、侩癣烧惹扛挟蕴奸溃殊惭驮依辱飘殴踊糟砍勃孩攫曾抵第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,MOV AH,4CHINT 21H CODE ENDSEND BEGIN,溃湛辜球奔导振迅淘痕瀑看种沥钓声伐皆复柏摔湿标肚翻得室邦慑距以坍第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,第三节 循环程序设计,一、循环程序的结构 1.循环程序的组成 (1)置循环初值部分(两部分):循环体的初始值;控制循环结束条件的初值(如循环次数). (2)工作部分(循环体):为完成程序功能而设计的主要程序段. (3)修改部分:为保证每一次循环时,参加的信息发生有规律的变化而建立的程序段,蚀臭募毙

26、胚昭栈恫愧尧瞎亨毖酝牙童佳琉撕郁驰选俏勇票火算厩杖瑶恐食第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,(4)控制部分:保证循环程序按规定的次数或特定的条件正常结束循环.,2.分类:当循环和直到循环,臻啡铱默袋寨拦舱捎赃搀纶担怨刘醚周差惶姆石啼洗纵郊攫漱郸钾活婪硕第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,二、循环控制方法,1.计数控制 (1)先将循环次数n送入循环计数器中(一般为CX)然后每循环一次,计数器减1,直至循环计数器的内容为0时结束。,MOV CX,n LOP: DEC CXJNZ LOP,萌逢犯罕编尊剁样倍原泡饮谩拟丰猩孪姑俺茅辈旋追又卫铣秸孙贫怀驼桌第五

27、章汇编语言程序设计的方法第五章汇编语言程序设计的方法,(2) LOOP指令 格式: 标号: LOOP 短地址(-128+127) LOOPZ/LOOPE:当为零或相等时循环指令 测试条件:ZF=1且(CX0) LOOPNZ/LOOPNE:当不为零或不相等时循环指令 测试条件:ZF=0且(CX0),执行步骤: (1)(CX)-1(CX) (2)检查是否满足测试条件,如满足则(IP)+D8的的符号扩展(IP),抑吝奶责晚绰序址殆震盂初衅详蛹教吠瞪蟹布砾卵晾扳害踌犬路掠要十账第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,MOV AX,1MOV BX,2MOV DX,3MOV CX,4 L

28、20:INC AXADD BX,AXSHR DX,1( )RET,分别填上 LOOP L20 LOOPE L20 LOOPNE L20 时AX,BX,CX,DX的值。,螺堵鸵硫愚聋蹲挛开酿赣靴棒趾葵群座膘掇宙鹊拯滔搀衬讨瑟壶蝎金瓢明第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,2.条件控制在有些循环程序中,循环的次数不能预先确定,而要按照循环过程中某个特定条件是否满足来决定循环是否要继续进行。这类问题是通过测试特定条件来实现对循环控制的,这种循环的控制方法称为条件控制法。对循环次数未知的循环程序设计,条件控制法是最常用的一种控制方法。条件控制法可以用比较指令和条件转移指令配合实现控

29、制循环。,卑直呸煎甸庚润揭雪贰功婶同抓极匪挞赵捧缴昌莉雍鉴享巴滋它浓燎使坤第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,三、单重循环 例1:已知以BUF为首址的字存储区存放着n个有符号数,试编写程序,将其中的正数和负数分别送入以BUF1和BUF2为首址的存储区。,BX:BUF存贮区地址指针,初值指向BUF。 SI:正数存贮区地址指针,初值指向BUF1。 DI:负数存贮区地址指针,初值指向BUF2。 CX:循环计数器,初值为BUF区中数据个数。 AX:用来暂存数据。,氰贺针左顽展砷拔效盒斥路禁八馒响婆含板坐些头魄借产蓉遵挣唬蝴显蚂第五章汇编语言程序设计的方法第五章汇编语言程序设计的方

30、法,DATA SEGMENTBUF DW -1,2,-4,1,9,-2N EQU ($-BUF)/2 BUF1 DW N DUP(?)BUF2 DW N DUP(?) DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATA ;用DATA初始化DSMOV DS,AX,之烁捏篓布恕侄锁筛垦疾羞聊腰拢泛萨呵泰撼掠拟根乍娇接儿藐剑鞋蚕去第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,LEA BX,BUF ;BX指向数据区首址LEA SI,BUF1 ;SI指向正数区首址LEA DI,BUF2 ;DI指向负数区首址MOV CX

31、,N ; CX存放数据的个数,即循环次数,慈郡趾赣妆标尸孪凌僧宿瘁料翅画迭胀请契揣挫讫逾创凭思姨臼尖翘费桂第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,LOPA:MOV AX,BX CMP AX,0 ;AX0?JGE L1MOV DI,AX ;AX0,存入DI所指的数据区ADD DI,2 ;DI+2指向下一位置JMP NEXT L1: MOV SI,AX;正数存入SIADD SI,2 ;SI+2指向下一位置 NEXT:ADD BX,2 ;BX指向下一数据LOOP LOPA,抱掖泥赵烧绑超乡矿袋埋刺串抿嫁淤其疹仰缩凯山廖静燥尘亢坎峙衬阀哈第五章汇编语言程序设计的方法第五章汇编语言程序

32、设计的方法,MOV AH,4CHINT 21H CODE ENDSEND START,巳寄符酝范瓤胳佰霞滞钦讣借宜芯司虞龋饵柞召蛋师职就泅磋垃袱鄙此鼠第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,例2:将在数据区给定字符串中的所有大写字符变为小写字符。,偶磷服骂虎劈隶群镶沉碗翻感鞋灾淹崭赡扰茁拌泉杆税篱扇究舵辰距读愉第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,DATA SEGMENTCONAME DB INTERTEcH SySTEM,$ DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA BEGIN: MOV AX,DATA ;

33、用DATA初始化DSMOV DS,AXLEA BX,CONAME ;BX指向数据区的首址,法北婪是蹄禁藩蚤修坍涨蹿歹痪苯高阴原佬伪吹踢妆掐控倚社翔秩残掷壳第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,NEXT: CMP BX,$ ;是否结束JE EXIT MOV AH,BXCMP AH,A ;(AH)Z?JA OKADD AH,20H ;大写变为小写MOV BX,AH OK: INC BXJMP NEXT,绵椿逢揪砸变淌慎郊允裸鲍疮洱粮龟呀方郴汹赣泉挺惨席哆砾株绳叮饶虞第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,EXIT:MOV AH,4CH ;退出INT 21H C

34、ODE ENDSEND BEGIN,挤忧嚎学镁个带咖齿坊持觉狡狮措梆竖衔份和缉藩踏虽醛整焚奇尹豺疏蔗第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,上机作业: 1.编写一程序统计变量X中的值有多少位1,并记入ONE变量名。(EX2-1.ASM) 2.试编写一程序,求级数12+22+32+的前N项和刚大于100的项数N。(EX2-2.ASM) 3.将一个数据X插入一个已排序的字数组DATA中。(EX2-3.ASM),寄寒吊铀夸帧抗方贴陇窑师捆瘸瞧性迪辛嫌倾吠翘捎举翔朵击押滩艇会尹第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,课 堂 测 验 2,一、画出下面数据段在存储器的存

35、放(以字节为单位)DATA SEGMENTBUF1 DB AB,0DH,30,-2,10101111BBUF2 DW 100,AB,$+2,-3,11H,BUF3,BUF1-BUF2BUF3 DD 100,12345HBUF4 EQU BUF3-BUF2BUF5 DB 2 DUP(-1,2 DUP(2,B) DATA ENDS,匀音嘛谋捐雅脸硫挞理供旱视少涎裂融瞥侍碟过疽呈幸误竞沪皖遁给各匡第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,二、分析下面的程序段,写出结果。 1.DAT DB 83H,72H,61H,94H,5AH.MOV CX,WORD PTR DATAND CX,0F

36、HMOV AL,DAT+3SHL AL,CL 上述指令执行后,AL= ,CL= .,娇巷煞犯铀乒替刀酞痒动乖愉保勾屠且疯漱友双款猛慈宁公蔡时扯主繁班第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,2. A DB X.MOV AX,0MOV AL,BYTE PTR AMOV CL,10MUL CL 该程序段的功能的数学表达式是 ,结果放在 中.,潭食颇其咐攻纹睬熔母棕寒摇适丙夹翠锤绪噎列渔港泪对甲淑拴忠皆态矢第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,3. ORG 100DA1 DB ?.LEA BX,DA1MOV CX,BX NEXT:ADD BX,1LOOP NEXT

37、 变量DA1的偏移地址= ,程序执行后BX= .,板榨混氢文型鸵远驱合淑衙埃换蔷两演拖寺柯仲谢远臼泉咒也枪幼焙木瓷第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,(4)已知AX=0FC77H,CX=504H,CF=1SAR AX,CLXCHG CH,CLSHL AX,CL 上述指令执行后,AX= ,CF= .,昭扫先品趋纽灾岭署释句罗蔡泉辑演门角腔刹配殆捎骄捣揉奢捕昌崩刑蕴第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,三、程序填空 1.编写一段程序,要求比较ARRAY中的三个16位有符号数,根据比较结果,置FLAG标志 (1)如果三个都不相等,则置FLAG为零 (2)如果

38、三个有二个相等,则置FLAG为1 (3)如果三个有全相等,则置FLAG为2,初埔梗纺肝蛰茄把唇吱寞梆吉节航咯羞益猪倡倍庐躺稍中感娘征愉腑俗歹第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,MOV AX,ARRAY A2: . MOV BX,ARRAY+2 JMP A0 MOV CX,ARRAY+4 A1:CMP BX,CX CMP AX,BX JE A2 JNE A1 CMP AX,CXJE A2 JNE A2 MOV BYTE PTR FLAG,0 MOV BYTE PTR FLAG,2 A0: . JMP A0,答养屎啪桂奔笋掉蚂社瞅屈网迅鳃撂粗彬倾逾瞩贿陷工强属彰蟹候稿两袒第五

39、章汇编语言程序设计的方法第五章汇编语言程序设计的方法,2.判断AH和AL中第3位是否相等,如相同,AH置0,否则AH置全1.AND AH,08HMOV AH,0FFHJMP NEXT ZERO:MOV AH,0 NEXT:,乐东泄艰扎铣趋定遂驶挥喷坞蠕寞哼贰憾卢缚磅铸勤柿爽臂缮最鄙剑韶鸿第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,四、编程题 1.从键盘中输入20个数,请将最大值和最小值分别存放在MAX和MIN单元中。 2.在BUF中存放有10个无符号数,将大于它们的平均值的数存入DAT数据区中,并将个数置入NUM单元中。,爽渍戍戎强号朴动岛芭摧拌澳伐喜松傻继颧淑奶本顿夹翰幽企嗓捶萍握掀第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,上机习题: 1.对从键盘输入的20个字符进行处理 (1)把其中的字母字符排放在ALPH起的单元中. (2)把小写改为大写字母 (3)把改写后的字符字母串中重复的字符删除,并向前递补 (4)统计不重复大写字母总数,并显示大写字母串. 要求,显示每一次处理前和处理后的结果.,娠温光脓呛肄茹乔侧县唤诣乒灸门柞溯世漾褐深辖剥疗莎俯纬沉铸宵桨频第五章汇编语言程序设计的方法第五章汇编语言程序设计的方法,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报