最新16位和32位微处理器的指令系统3336教学讲义PPT.ppt

最新16位和32位微处理器的指令系统3336教学讲义PPT.ppt

ID:62051891

大小:1.30 MB

页数:75页

时间:2021-04-13

最新16位和32位微处理器的指令系统3336教学讲义PPT.ppt_第1页
最新16位和32位微处理器的指令系统3336教学讲义PPT.ppt_第2页
最新16位和32位微处理器的指令系统3336教学讲义PPT.ppt_第3页
最新16位和32位微处理器的指令系统3336教学讲义PPT.ppt_第4页
最新16位和32位微处理器的指令系统3336教学讲义PPT.ppt_第5页
资源描述:

《最新16位和32位微处理器的指令系统3336教学讲义PPT.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、16位和32位微处理器的指令系统3336算法:取出要显示的某4位,转换为对应的ASCII码,再调用DOS系统功能进行显示。1)对于0000~1001(0~9),先扩展成一个字节,高4位清0,加上30H后,即可得字符’0’~’9’对应的ASCII码。00000001B+30H=31H00001001B+30H=39H0001B‘1’1001B‘9’2)对于1010~1111(A~F),先扩展成一个字节,高4位清0,加上30H后,还要再加上07H,才能得到’A’~’F’对应的ASCII码00001010

2、B+30H+07H=41H00001111B+30H+07H=46H1010B‘A’1111B‘F’codeSEGMENTASSUMECS:codestart:MOVCH,4;字符个数MOVCL,4;循环移位次数next:ROLBX,CL;取显示位的值MOVDL,BL;保存在DL中ANDDL,0FH;清除高4位ADDDL,30H;转变为数字的ASCIICMPDL,39H;大于39H,则应转变JLEprint;为字母A~F的ASCIIADDDL,07Hprint:MOVAH,2H;显示DL中的字符IN

3、T21HDECCH;显示结束?JNZnextMOVAH,4CH;返回DOSINT21HcodeENDSENDstart显示字符个数CH=4循环移位次数CL=4BX循环左移4位,将要显示的值移至低4位,保存在DL中清DL的高4位,只保留要显示位的值DL←DL+30H完成数值0~9的ASCII码转换YNDL←DL+07H完成数值A~F的ASCII码转换用02功能显示DL中的字符YN返回DOSDL超出39H?CH←CH-1转换结束?开始listbxPROCMOVCH,4MOVCL,4next:ROLBX,

4、CLMOVDL,BLANDDL,0FHADDDL,30HCMPDL,39HJLEprintADDDL,07Hprint:MOVAH,2HINT21HDECCHJNZnextMOVDL,20H;显示空格符MOVAH,02HINT21HRET;子程返回listbxENDPcodeENDSENDstartlistbxPROCPUSHCX;保存寄存器PUSHBXPUSHDXPUSHAXPUSHFPOPF;恢复寄存器POPAXPOPDXPOPBXPOPCXRET;子程序返回listbxENDPcodeENDS

5、ENDstart用十六进制显示BX内容子程序D:>LIST_REG;在DOS下执行程序0000000000FF0BDF00000912000000000BDF0BDF0BEF0BEF00003202D:>DEBUGLIST_REG.EXE;利用DEBUG检测结果-R;显示当前寄存器内容AX=0000BX=0000CX=007BDX=0000SP=0000BP=0000SI=0000DI=0000DS=128EES=128ESS=129ECS=129EIP=0000NVUPEIPLNZNAPONC

6、129E:000053PUSHBX-G;执行程序00000000007B00000000000000000000128E128E129E129E00007202Programterminatednormally-运行的结果与用R命令显示的结果相同,程序运行结果正确例2将键盘输入的十进制数据串转换成相应大小的十六进制数值存放在BX寄存器中。分析:从键盘输入’1234’(表示1234)用0AH功能输入,则缓冲区存放的内容为:06h04h31h32h33h34h0Dhnum问题:要转换成1234即04D2

7、h存放在BX中,怎么实现?清ASCII码的高4位可得各数位大小值。01h02h03h04h04D2h?算法一:数值大小=各位值×权值之和1234D=千位×1000+百位×100+十位×10+个位=1×1000+2×100+3×10+4=0000010011010010B=04D2H01h02h03h04h04D2h?算法二:数值大小=部分和×10+下一位数值1234D=(((0×10+1)×10+2)×10+3)×10+4=0000010011010010B=04D2H部分和从0开始,循环次数等于输

8、入的位数01h02h03h04h04D2h?dataSEGMENTstringDB‘Input:’,’$’numDB6,?,6DUP(?)dataENDSCODESEGMENTASSUMECS:code,DS:datastart:MOVAX,dataMOVDS,AXCALLinputCALLchangeCALLlist_bxMOVAH,4CHINT21H开始初始化DS的值CALLinput显示输入提示,等待从键盘输入十进制数据串CALLchange将数据串转化为相应的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。