欢迎来到天天文库
浏览记录
ID:51594936
大小:48.00 KB
页数:10页
时间:2020-03-25
《微机原理课件(西电版)ppt33-3.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3章16位和32位微处理器的指令系统第三节指令I2程序一:将内存3500H单元开始的0-10H共16个数据传送到3600H单元开始的数据区中。3STACKSEGMENTSTACK;8088宏汇编DW64DUP(?)STACKENDSCODESEGMENT;定义代码段ASSUMECS:CODESTART:MOVSI,3500H;主程序开始,建立源地址指针MOVDI,3600H;建立目标地址指针MOVCX,0008H;字送入CX寄存器A1:MOVAX,[SI];取源数据一个字节送入AX中MOV[DI],AX;将源数据送入目标地址单元中INCSI;修
2、正指针INCSIINCDIINCDIDECCX;判断数据是否传送完毕JNZA1;CX-1为0则转移,否则循环CODEENDSENDSTART4程序二:从3500H内存单元开始建立0-15共16个数据。5STACKSEGMENTSTACK;8088宏汇编DW64DUP(?);定义堆栈段STACKENDSCODESEGMENT;定义代码段ASSUMECS:CODESTART:MOVDI,3500H;程序开始设数据区首址MOVCX,0010H;字节数送入CX中MOVAX,0000HSAHFA1:MOV[DI],AL;写入一字节INCDI;修改
3、地址指针INCAX;修改数据DAA;十进制调整LOOPA1;未填完转移CODEENDS;代码段结束ENDSTART;程序结束6程序三:计算X+Y=Z,将结果Z存入某存储单元。双精度(2个16位,既32位)运算,利用累加器AX,先求低16位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。由于低位和可能向高位有进位,因而高位字相加语句需要用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。7STACKSEGMENTSTACKDW64DUP(?)STACKENDSDATASEGMENTXLDW?;请在此处给X低位
4、赋值XHDW?;请在此处给X高位赋值YLDW?;请在此处给Y低位赋值YHDW?;请在此处给Y高位赋值ZLDW?ZHDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,XL;X的值送AXADDAX,YL;X低位加Y低位MOVZL,AX;存低位和MOVAX,XH;X高位送AXADCAX,YH;X高位加Y高位MOVZH,AX;存高位和CODEENDSENDSTART8程序四:计算X-Y=Z,其中X,Y,Z为BCD码。9STACKSEGMENTSTAC
5、KDW64DUP(?)STACKENDSDATASEGMENTXDW?;请在此处给X赋值YDW?;请在此处给Y赋值ZDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,00HSAHFMOVCX,0002HMOVSI,OFFSETXMOVDI,OFFSETZA1:MOVAL,[SI]SBBAL,[SI+02H]DASPUSHFANDAL,0FHPOPFMOV[DI],ALINCDIINCSILOOPA1A2:JM
6、PA2CODEENDSENDSTART程序流程图10
此文档下载收益归作者所有