- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AGAIN:DIV BX ADD DL,30H MOV [DI],DL JL ERROR INC DI AND AX,AX JZ STO MOV DL,0 LOOP AGAIN STO: MOV AX,4CH INT 21H CODE ENDS END START [例4-21]两个多字节二进制数求和。 DATA SEGMENT BUFF1 DB 4FH,0B6H,7CH,34H,56H,1FH BUFF2 DB 13H,24H,57H,68H,FDH,9AH SUM DB 6 DUP(?) CONT DB 3 DATA ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFF1 MOV DI, OFFSET BUFF2 MOV BX, OFFSET SUM MOV CL,CONT ADD DL,30H MOV CH,0 CLC GOON:MOV AX,[SI] ADC AX,[DI] ADD SI,2 ADD DI,2 MOV [BX],AX ADD BX,2 LOOP GOON MOV AX,4CH INT 21H CODE ENDS END START [例4-22]把一个二进制数转换为BCD码。 分析:将一个二进制数转换为BCD码,可以把该二进制数不断地除以10,并记下余数,直到商为0。余数序列就是所求的BCD码,第一个余数为该BCD的最低位。 转换出的BCD码是扩展BCD码,要得到压缩的BCD码,要取各数字的低四位,将其拼接在一起。 DATA SEGMENT MBIN DW 4FB6H MBCD DB 5 DUP(?) DATA ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,MBIN LEA BX,MBCD XOR DX,DX MOV CX,0AH DIV CX MOV [BX], DL MOV DL,0 DIV CX INC BX MOV [BX],DL MOV DL,0 DIV CX INC BX MOV [BX], DL MOV DL,0 DIV CX INC BX MOV [BX],DL INC BX MOV [BX],AL MOV AH,4CH INT 21H CODE ENDS END START 作业 1. 在下列程序运行后,请给相应的寄存器及存储单元填入运行的结果。 MOV AL,10H MOV CX,1000H MOV BX,2000H MOV [CX],AL XCHG CX,BX MOV DH,[BX] MOV DL,01H XCHG CX,BX MOV [BX],DL HLT 2. 在下列程序运行后,请给相应的寄存器及存储单元填入运行的结果。 MOV AL,20H MOV BP,1000H MOV BX,2000H MOV [BP],AL MOV DH,20H MOV [BX],DH MOV DL,01H MOV DL,[BX] MOV CX,3000H HLT 3. 利用变址寄存器,编写一个程序,把自1000单元开始的100个数传送到自0170H开始的存储区中去。 编程题 1. 在自0500H单元开始,存有100个数(字节)。要求把它传送到1000H开始的存储区,但在传送过程中要检查数的值,遇到每一个零就停
文档评论(0)