资源描述
第四章汇编语言的程序设计,从流程图到程序1.将一个单字节无符号整数转换为十进制数后在屏幕上输出思路:一个单字节数在0255范围,转换为十进制数后可能包含3位。可以分别除以100、10来求出百位、十位、个位数,然后用9号系统调用输出。,流程图要点:1.尽量方便写成指令2.一页画不完可以转下页,单字节数送AX,SI-AL,开始,SI指向第一个数,AX/100,余数送AX,1,该段流程图主要解决以下问题:1.求出三位十进制数2.通过循环将求出的十进制数转换成ASCII码,CL-3,AX/10,Y,AL-SI,SI+1-AL,1,SI+2-AH,调用子程序ASC,2,3,该流程图反映了核心的算法步骤:1.有一个子程序ASC未画2.计数寄存器CL反映出循环次数3.本流程图可以很容易地变成指令,DS:DX指向转换好的ASCII字符串,SI-AL,Y,结束,SI-SI+1,CL=0?,N,CL-CL-1,2,3,9号系统调用显示输出字符串,循环流程图总结,循环结构经常使用指令:LOOP标号相当于(1)CX9?,N,Y,AL-AL+30H,AL-AL+37H,返回,子程序ASC代码,ascprocnearcmpal,10jncalphaaddal,30hjmpout1alpha:addal,37hout1:ret,子程序ASC也可以用查表实现,ascprocnearmovbx,offsettabxlatret表格tab定义在数据段中,如下:tabdb30h,31h,32h,33h,34h,35h,36h,37hdb38h,39h,41h,42h,43h,44h,45h,46h,2.程序例从键盘输入一位16进制数,转化成10进制数后在屏幕上显示,CODESEGMENTASSUMECS:CODEAGAIN:MOVAH,1INT21HCMPAL,0JBAGAIN,CMPAL,9JBEDIGITALCMPAL,AJBAGAINCMPAL,FJBEALPHACMPAL,aJBAGAINCMPAL,f,JBELALPJMPAGAINDIGITAL:SUBAL,30HJMPDISPALPHA:SUBAL,37HJMPDISPLALP:SUBAL,57HDISP:XORAH,AHADDAX,0AAA,AH中存放了十位,AL中存放了个位,09在这里处理,AF在这里处理,af在这里处理,MOVDH,ALMOVDL,AHADDDL,0MOVAH,2INT21HMOVDL,DHADDDL,0INT21HMOVAH,4CH,INT21HCODEENDSEND,3。编程任务,(1)求出AX中1的个数放在CL中,0的个数放在CH中。(2)编程找出1000010100之间的全部素数,各组依次类推。,
展开阅读全文