《语言程序设计2资料讲解.ppt》由会员分享,可在线阅读,更多相关《语言程序设计2资料讲解.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer汇编语言程序设计2第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer指令指令:注意:立即数前加“#”,后面带“B”、“D”、“H”分别表示“二进制”、“十进制”、“十六进制”指令中rel、addr16、addr11常用标号地址表示指令中操作数可带加、减运算符的表达式“$”符号表示该转移指令机器码所在ROM的首地址标号以字母开头、不超过8个字符,不允许使用保留字、寄存器
2、名及伪指令字符4.1 4.1 汇编语言程序设计基础汇编语言程序设计基础 汇编语言汇编语言11/25/20222第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer伪指令伪指令伪指令:伪指令伪指令机器指令机器指令一一对应一一对应特点:伪指令是由汇编程序识别,并完成相应的功能功能:在汇编过程中对数据的存储环境或汇编实施一定的控制,如:伪指令给程序分配一定的存储区、定义符号、指定暂存数据的RAM区等 4.1 4.1 汇编语言程序设计基础汇编语言程序设计基础 汇编语言汇编语言11/25/20223第第4 4章章 汇
3、编语言程序设计汇编语言程序设计The Principle and Application Of MicrocomputerDATA(赋值)伪指令:(赋值)伪指令:格式:字符名 DATA 表达式DATA伪指令与EQU伪指令的区别:EQU定义的字符名必须“先定义后使用”,而DATA定义的“字符名”没有这种限制DATA伪指令可放在程序的任何位置,比EQU伪指令灵活 功能:将右边“表达式”的值赋给左边的“字符名”注意:这里的表达式允许是一个数据或地址,也可以是包含被定义的“字符名”在内的表达式,但不能是汇编符号,如R0R7等 4.1 4.1 汇编语言程序设计基础汇编语言程序设计基础 汇编语言汇编语言1
4、1/25/20224第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of MicrocomputerORG(起始汇编)伪指令(起始汇编)伪指令:格式:ORG 功能:把以下语句定义的内存数据或程序,从表达式指定的起点(偏移地址)开始连续存放,直至遇到新的ORG指令。表达式值是一个无符号数格式:END功能:结束汇编语言源程序的标志用途:常用于汇编语言源程序末尾,表示汇编结束注意:一个源程序只能有一个END命令,且置于程序的最后。在END以后所写的指令,汇编程序都不予处理 END(结束汇编)伪指令:4.1 4.1 汇编语言程序设计基础汇编语
5、言程序设计基础 汇编语言汇编语言11/25/20225第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of MicrocomputerBIT(位地址赋值)伪指令:(位地址赋值)伪指令:格式:字符名 BIT 位地址功能:将位地址赋予BIT前面的字符名,经赋值后可用该字符名代替BIT后面的位地址注意:被定义后,“字符名”是一个符号位地址有些汇编程序不允许使用BIT伪指令,用户只能用EQU伪指令定义位地址变量,但是用这种方式定义时,EQU语句右边只能是实际的物理地址,而不能使符号位地址 如:K1 BIT 20HKK BIT K1 X2 EQ
6、U 6DHX2 EQU K14.1 4.1 汇编语言程序设计基础汇编语言程序设计基础 汇编语言汇编语言11/25/20226第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer1.顺序结构顺序结构程序设计程序设计特点:执行程序的方式是“从头到尾”逐条执行指令语句,直至程序结束例4-1:拆字程序。将30H单元内的两位BCD码拆开并转换成ASCII码,将转换后的ASCII码放在31H和32H单元,并让低位ASCII码放在32H单元 程序:ORG2000HMOVA,30H ANLA,#0FHADDA,#30H M
7、OV32H,AMOVA,30HSWAPA ANLA,#0FHADDA,#30HMOV31H,ASJMP$END 4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 顺序结构程序设计顺序结构程序设计4.2 MCS51汇编语言程序设计汇编语言程序设计11/25/20227第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer例例4-2:将:将60H单元中的单元中的8位无符号数转换成三位位无符号数转换成三位BCD码,码,并存放在并存放在BAI(百位)、(百位)、SHI(十位)和(十位)和GE(个位
8、)三个(个位)三个单元中单元中 MOV SHIW,A MOV GEW,BSJMP$END程序:ORG 2000HBAIW DATA 40HSHIW DATA 41HGEW DATA 42HMOVA,60H ;取数MOVB,#100 ;除数为100DIV AB ;确定百位数,位于A中MOV BAIW,A;存百位数MOV A,B ;余数送AMOV B,#10 ;除数为10DIV AB ;确定十位数和个位数4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 顺序结构程序设计顺序结构程序设计11/25/20228第第4 4章章 汇编语言程序设计汇编语言程序设计The Principl
9、e and Application Of Microcomputer例例4-3:将两个三字节:将两个三字节无符号数无符号数相加,其中一个加数在内部相加,其中一个加数在内部RAM的的32H、31H和和30H单元;另一个加数在内部单元;另一个加数在内部RAM的的35H、34H和和33H单元,要求相加后的和存入单元,要求相加后的和存入32H、31H和和30H单元,进位存入位寻址单元,进位存入位寻址区的区的20H单元中单元中 MOVR0,A INCR0 INCR1MOVA,R0ADDC A,R1MOVR0,AMOV20H,CEND程序:ORG2000HCLRCMOVR0,30HMOVR1,33HMOV
10、A,R0ADDA,R1MOVR0,AINCR0INCR1MOVA,R0ADDC A,R14.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 顺序结构程序设计顺序结构程序设计11/25/20229第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer例例10-24:16位数求补位数求补。已知。已知16位二进制数在位二进制数在R1、R0中,中,将此将此16位二进制数求补,求补结果存入内部位二进制数求补,求补结果存入内部RAM 31H、30H单元单元 程序:ORG2000HCLRCMOVA,R0;
11、取低位字节送入ACPLA;求反ADDA,#01H;加1MOV30H,A;存低位字节补码MOVA,R1;取高位字节送ACPLA;去反ADDC A,#00H;加进位MOV31H,A;存高位字节补码END4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 顺序结构程序设计顺序结构程序设计11/25/202210第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer2.分支结构分支结构程序设计程序设计利用条件转移指令,使程序执行到某一指令后,根据条件(即上面运算的情况)是否满足,改变程序执行的次序特
12、点特点:先用:先用比较指令比较指令或或数据操作数据操作及及位测指令位测指令等改变标志等改变标志寄存器各个标志位,然后用条件转移指令进行分支寄存器各个标志位,然后用条件转移指令进行分支设计要点:先建立可供条件转移指令测试的条件 选用合适的条件转移指令,如:JZ,JNZ,CJNE,DJNZ等/JC,JNC,JB,JNB,JBC等 在转移的目的地址处设定标号4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 分支结构程序设计分支结构程序设计11/25/202211第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Mic
13、rocomputer例例10-25:求单字节:求单字节有符号有符号二进制数的补码二进制数的补码程序:ORG 2000HJNB ACC.7,NEG ;(A)0,不需转换MOV C,ACC.7 ;保存符号位MOV 00H,C ;保存符号位CPL AADD A,#1MOV C,00HMOV ACC.7,C ;恢复符号位NEG:SJMP$END4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 分支结构程序设计分支结构程序设计11/25/202212第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomput
14、er例例10-26:已知:已知VAR单元中有一自变量单元中有一自变量X,请按如下条件,请按如下条件编出求函数值编出求函数值Z并将它存入并将它存入FUN单元的程序单元的程序 Z=X0X=0X010-1AXA=0?A0?A1A1YYN存数存数N方法一:先分支后赋值 AXXA=0?A0?R11R11存数存数YNNY方法二:先赋值后分支4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 分支结构程序设计分支结构程序设计11/25/202213第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer方法
15、一方法一:先分支后赋值:先分支后赋值程序:ORG 2000HVAR DATA 40HFUN DATA 41HSTART:MOV A,VARJZ SAVEJNB ACC.7,ZHENMOV A,#0FFH SJMP SAVEZHEN:MOV A,#01H SAVE:MOV FUN,A SJMP$ENDAXA=0?A0?A1A1YYN存数存数N4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 分支结构程序设计分支结构程序设计11/25/202214第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomp
16、uterORG 2000HVAR DATA 40HFUN DATA 41HSTART:MOV A,VAR;自变量XACJNEA,#0,NEQ;若X0,则转NEQ SJMP SAVENEQ:JNB ACC.7,ZHEN;若X0,则转ZHENMOVA,#0FFH ;若X0?R11R11存数存数YNNY流程图:流程图:程序:ORG 2000HVAR DATA 40HFUN DATA 41HSTART:MOV A,VARJZ SAVEMOV R1,#0FFH JB ACC.7,NEGMOV R1,#01HSJMP SAVENEG:MOV A,R1 SAVE:MOV FUN,A SJMP$END4.2
17、MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 分支结构程序设计分支结构程序设计11/25/202216第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer例例10-27:两个:两个带符号数带符号数分别存于分别存于ONE和和TWO单元,试编程比较大单元,试编程比较大小,并将大的数存入小,并将大的数存入MAX单元单元 开始开始 XY?X-Y0?OV=1?MAXXXOV=1?MAXYY结束结束YNNYYYNN流程图流程图:4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 分支结
18、构程序设计分支结构程序设计11/25/202217第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer分析:两个带符号数的比较可将两数相减后的正负和溢出标志结合在一起判断 1)若X-Y为正,则 OV=0,XY OV=1,XY2)若X-Y为负,则 OV=0,XY同号:对两个正数相减或者两个负数相减都不会溢出(OV=0)。若差为正则XY;若差为负则X0,OV1,则YX SJMP XMAX;若X-Y0,OV0,则XYNEG:JB OV,XMAX;X-YYYMAX:MOV A,TWO;YXSJMP SAVEXMAX
19、:MOV A,ONE;XYSAVE:MOV MAX,A;送较大值至MAXSJMP$END4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 分支结构程序设计分支结构程序设计11/25/202219第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer例例10-28:设计可多达:设计可多达128路分支出口的转移程序路分支出口的转移程序 分析:设128个出口分别转向128段小程序,它们的首地址依次为addr00、addr01、addr02、addr03、addr7F。要转移到某分支的信息存放在工
20、作寄存器R2中,则散转程序:ORG 1000HEQU TAB 2000HMOV DPTR,#TAB MOV A,R2 RL A ;将出口分支信息乘2,因为散转表中的转移 JMP A+DPTR;指令均为2字节指令,若为3字节指令应乘3TAB:AJMP addr00 AJMP addr01 AJMP addr02 AJMP addr7F4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 分支结构程序设计分支结构程序设计11/25/202220第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer
21、3.循环结构循环结构程序程序组成组成:初始化初始化循环体循环体循环控制循环控制循环结束处理循环结束处理4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 循环结构程序设计循环结构程序设计11/25/202221第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer例例10-29:已知:已知内部内部RAM的的ADDR1单元开始有一单元开始有一无符号无符号数据块,块数据块,块长在长在LEN单元,请编出求数据块中各数累加和并存于单元,请编出求数据块中各数累加和并存于外部外部RAM的的SUM1单元的
22、程序单元的程序(注注:和不超过:和不超过256)方法一:先判断后处理流程图:0(A)块长块长+1(R2)ADDR1(R1)完成?完成?(A)+(R1)(A)YN(R1)+1(R1)和和(SUM1)程序:ORG 2000HADDR1 EQU 30HLEN EQU 20HSUM1 EQU 2000H MOV DPTR,#SUM1CLR AMOV R2,LENMOV R1,#ADDR1 INC R2SJMP CHECKLOOP:ADD A,R1 INC R1CHECK:DJNZ R2,LOOP MOVX DPTR,A SJMP$END4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设
23、计 分支结构程序设计分支结构程序设计11/25/202222第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer方法二:先处理后判断流程图:0(A)块长块长(R2)ADDR1(R1)完成?完成?(A)+(R1)(A)YN(R1)+1(R1)和和(SUM1)程序:ORG 2000HADDR1 EQU 30HLEN EQU 20HSUM1 EQU 2000H MOV DPTR,#SUM1CLR AMOV R2,LENMOV R1,#ADDR1 NEXT:ADD A,R1 INC R1DJNZ R2,NEXTMO
24、VX DPTR,A SJMP$END4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 分支结构程序设计分支结构程序设计11/25/202223第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer例例10-30:已知内部:已知内部RAM ADDR1为起始地址的数据块内为起始地址的数据块内部数据是无符号数,块长在部数据是无符号数,块长在LEN单元内,请编程求出数单元内,请编程求出数据块中的最大值并存入据块中的最大值并存入MAX单元单元 程序:ORG 2000HADDR1 DATA 50HLE
25、N DATA 30HMAX DATA 32HMOV MAX,#00H;MAX单元清零MOV R1,#ADDR1;ADDR1送R1LOOP:MOV A,R1;数据块中数送入ACJNE A,MAX,NEXT1;A和(MAX)比较NEXT1:JC NEXT;若A9,则转NEXT2ADD A,#30H;若(A)10;则(A)(A)30HSJMP SAVE;转SAVENEXT2:ADD A,#37H;(A)(A)37HSAVE:MOV R0,A;存数SJMP$;结束END4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 查表结构程序设计查表结构程序设计11/25/202227第第4
26、4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer方法二方法二:查表求解:现以:查表求解:现以“MOVC A,A+PC”指令为例指令为例程序:ORG 2000HMOV A,R0;取需转换数值到(A)ANL A,#0FH;屏蔽高四位ADD A,#03H;计算偏移量MOVC A,A+PC;查表MOV R0,A;存数SJMP$;结束TAB:DB 0,1,2,3,4DB 5,6,7,8,9DB A,B,C,D,E,FEND4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 查表结构程序设计查表结构程序设
27、计11/25/202228第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer方法三:先把R0中内容加上90H,并作十进制调整,然后再用ADDC指令使R0中内容加上40H,也作十进制调整,所得结果即为相应ASCII码程序:ORG 2700HMOV A,R0;取需转换数值到(A)ANL A,#0FH;屏蔽高四位ADD A,#90H;A中的内容加90H DA A;十进制调整ADDC A,#40H;A中的内容加40HDA A;十进制调整MOV R0,A;存数SJMP$;结束END4.2 MCS4.2 MCS515
28、1汇编语言程序设计汇编语言程序设计 查表结构程序设计查表结构程序设计11/25/202229第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer5.子程序结构子程序结构程序程序特点:简化整个程序的结构,便于调试,可实现程序模块化、缩短程序设计时间、减少对存储空间的占用 LCALL/ACALLRET注意:子程序的第一条指令地址称为子程序的始地址或入口地址。该指令前必须有标号,标号应以子程序任务定名主程序调用子程序是通过安排在主程序中的调用指令实现的,在子程序末尾放置RET子程序返回指令子程序调用和返回指令能自
29、动保护和恢复断点地址,但对需要保护的工作寄存器、特殊寄存器和内存单元中的内容,就必须在子程序开始和末尾(RET指令前)安排保护和恢复的指令4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 子程序设计子程序设计11/25/202230第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer为使所编子程序可以放在64KB程序存储器的任何地方并能被主程序调用,子程序内容通常使用相对转移指令而不使用长转移指令,以便汇编时生成浮动代码子程序参数可以分为入口参数和出口参数两类:入口参数是指子程序需要的原
30、始参数,由调用它的主程序通过约定工作寄存器R0R7、特殊功能寄存器SFR、内存单元或堆栈等预先传送给子程序使用;出口参数是由子程序根据入口参数执行程序后获得的结果参数,应由子程序通过约定的工作寄存器R0R7、特殊功能寄存器SFR、内存单元或堆栈等传递给主程序使用 4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 子程序设计子程序设计11/25/202231第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer主程序与子程序之间的参数传递主程序与子程序之间的参数传递传递的参数传递的参数入口参
31、数入口参数出口参数出口参数参数的参数的传递方法传递方法用寄存器或累加器传递参数用寄存器或累加器传递参数利用寄存器传递利用寄存器传递参数地址参数地址利用堆栈传递参数利用堆栈传递参数利用位地址传递参数利用位地址传递参数入口参数:是指子程序需要的原始数据,由主程序传递给子程序出口参数:是由子程序提供入口参数执行子程序后获得的结构参数,由子程序传递给主程序4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 子程序设计子程序设计11/25/202232第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomput
32、eru用寄存器或累加器传递参数 将入口参数或出口参数放在工作寄存器或累加器中u利用寄存器传递参数地址 CPU在主程序中把子程序入口参数地址利用寄存器R0R7传递给子程序;子程序执行完成后的出口参数也如此传递给主程序优点:程序最简单、运算速度快缺点:工作寄存器数量有限,不能传递太多的数据;主程序必须先把数据送到工作寄存器;参数个数固定,不能由主程序任意设定优点:节省传递数据的工作量、可实现变长度运算如:参数在内部RAM中R0、R1;参数在外部RAM或ROM中DPTR;可变长度运算时,可用一个寄存器指出数据长度,或者在RAM中使用结束标志缺点:参数不易控制4.2 MCS4.2 MCS5151汇编语
33、言程序设计汇编语言程序设计 子程序设计子程序设计11/25/202233第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputeru利用堆栈传递参数主程序传递参数给子程序:主程序将参数依次压栈,子程序再依次弹栈并将其应用于子程序操作和运算子程序传递参数给主程序:子程序将参数依次压栈,主程序再依次弹栈并将其应用于主程序u利用位地址传递参数 当子程序的入口参数是字节中的某些位时,将这些位地址作为参数传递例10-33:在寄存器R2中存放两位16进制数,请编制程序将其分别转换为ASCII码并且存入M1单元和M11单元优点
34、:简单、传递参数量大,不必为特定的参数分配存储单元缺点:堆栈指针的深度不易控制4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 子程序设计子程序设计11/25/202234第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer入口参数:(SP)两位16位进制数出口参数:(SP)1位十六进制数对应的ASCII码使用资源:SP,A,DPTR,R2,内部RAM40H、41H单元主程序:ORG 2000HM1DATA 40HMOV SP,#60H;设堆栈指针初值MOV DPTR,#TAB1;ASC
35、II码表头地址送数据指针PUSH 02H;第一个16进制数进栈,利用堆栈传递参数ACALL ASCH;调用转换子程序POP M1;第一个ASCII码送入M1单元MOV A,R2;SWAP A;高4位和低4位交换PUSH ACC;第二个16进制数进栈ACALL ASCH;第二次调用转换子程序POP M1+1;第二个ASCII码送入M11单元SJMP$4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 子程序设计子程序设计11/25/202235第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomput
36、erASCH:DEC SPDEC SP;修改SP指针到参数位置POP ACC;弹出参数到(A)ANL A,#0FHMOVC A,A+DPTR;查表PUSH ACC;参数进栈INC SP;修改SP指针返回地址INC SPRETTAB1:DB 01234567DB 89ABCDEFEND子程序:4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 子程序设计子程序设计11/25/202236第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer例例10-34:设:设AD1和和AD2单元内部有两个数
37、单元内部有两个数a和和b,请编制,请编制ca2b2的程序,并把的程序,并把c送入送入AD3单元。假设单元。假设a和和b均为均为小于小于10的整数的整数 程序:ORG 2000HAD1DATA 30HAD2DATA 31HAD3DATA 32HMOV A,AD1;入口参数a送入(A)ACALL SQR;求a2入口参数:(A)a或b出口参数:(A)a2或b2使用资源:A、B、内部RAM30H32H4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 子程序设计子程序设计11/25/202237第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and App
38、lication Of MicrocomputerMOV AD3,A;a2送入(AD3)MOV A,AD2;入口参数b送入(A)ACALL SQR;求b2ADD A,AD3;a2b2送入(A)MOV AD3,A;结果存入(AD3)SJMP$SQR:MOV B,AMUL ABRETEND4.2 MCS4.2 MCS5151汇编语言程序设计汇编语言程序设计 子程序设计子程序设计11/25/202238第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer1.已知:内部已知:内部RAM BLOCK单元开始存放有一组
39、带单元开始存放有一组带符号数,数的个数已在符号数,数的个数已在LONG单元,请编出可以统单元,请编出可以统计其中正数和负数个数并分别存入计其中正数和负数个数并分别存入NUM和和NUM1单元的程序。单元的程序。2.外部外部RAM从从2000H到到2100H有一数据块,请编出将有一数据块,请编出将它们传送到它们传送到3000H到到3100H区域的程序。区域的程序。3.在内部在内部RAM中,有一个以中,有一个以BLOCK为始址的数块,为始址的数块,块长在块长在LEN单元。请用查表指令编一程序,先检查单元。请用查表指令编一程序,先检查它们是否是它们是否是16进制数进制数AF,若是,则把它们变为,若是,
40、则把它们变为ASCII码,若不是,则把它们变为码,若不是,则把它们变为00H。4.用除法指令将用除法指令将20H单元的两个单元的两个BCD码变成码变成ASCII后后存入存入21H和和22H单元单元5.编程实现编程实现20H单元的两个单元的两个BCD码数相乘,结果以码数相乘,结果以BCD码的形式存于码的形式存于21H单元中。单元中。作业作业11/25/202239第第4 4章章 汇编语言程序设计汇编语言程序设计The Principle and Application Of Microcomputer此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢