- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * MOV SUM, 0 ;累加器清零 MOV CL, BUFFER+1;循环次数 MOV CH, 0 LEA BX, BUFFER+2;装载字符存放区首地址 ONE: MOV AL, [BX] ;取出一个字符 AND AL, 0FH ;ASCII码转换成二进制数 ADD SUM, AL ;累加 INC BX ;修改指针 LOOP ONE ;计数与循环 MOV AX, 4C00H INT 21H CODE ENDS END START * 第4章 数据运算与输入输出 * 4.5 输入与输出 [例35]从键盘上输入不大于65535的十进制数,转换成二进制数。 DATA SEGMENT BUFFER DB 6, ?, 6 DUP(?) C10 DW 10 X DW ? DATA ENDS CODE SEGMENT ASSUME DS: DATA, CS: CODE START: MOV AX, DATA MOV DS, AX LEA DX, BUFFER ;装载输入缓冲区首地址 MOV AH, 0AH ;行输入功能代号 NT 21H ;输入一个数,以回车结束。 EP405.ASM * 第4章 数据运算与输入输出 * 4.5 输入与输出 * * * * * * * * * MOV AX, 0 ;累加器清零 MOV CL, BUFFER+1 ;循环次数 MOV CH, 0 LEA BX, BUFFER+2 ;字符存放区首地址 ONE: MUL C10 ;P=P×10 MOV DL, [BX] ;取出一个字符 AND DL, 0FH ;转换成二进制数 ADD AL, DL ;累加 ADC AH, 0 INC BX ;修改指针 LOOP ONE ;计数与循环 MOV X, AX ;保存结果 MOV AX, 4C00H INT 21H CODE ENDS END START 4.5 输入与输出 * 第4章 数据运算与输入输出 * [例36] 用查表法将一个32位二进制无符号数按十六进制数显示。 EP406.ASM * 第4章 数据运算与输入输出 * 4.5 输入与输出 * * * * * * * * * 注意使用32位寻址 第4章 小结 第4章 数据运算与输入输出 * * 汇编语言程序设计 算术、逻辑、移位指令数量较多,主要用于数值计算和表达式计算,应该注意每条指令对标志位的影响。其中的CMP和TEST指令,在下一章的分支和循环程序中也经常用到。 字符的输入输出,特别是1、2、9、10号功能调用应熟练掌握,灵活使用。 谢 谢! * * 汇编语言程序设计 第4章 数据运算与输入输出 8、串操作指令 字符串连续地存贮在内存储器中,每个字符的编码占用一个字节。 * * 汇编语言程序设计 一、与无条件重复前缀配合使用的串指令 二、与有条件重复前缀配合使用的指令 串操作指令的共同特点: * * 汇编语言程序设计 源操作数由DS:[SI]提供(有时也可以由AL、AX、EAX提供); 目的操作数由ES:[DI]提供 每执行一次串操作,自动修改SI和(或)DI,使其指向下一个字节、字或双字 方向标志DF控制对SI、DI递增或是递减 指令STD将DF置1,指令CLD将DF清0 一、与无条件重复前缀REP配合使用的指令 * * 汇编语言程序设计 1. MOVS 字符串传送指令 格式:MOVSB / MOVSW / MOVSD 执行的操作: (1)目的操作数单元←源操作数,即ES:[DI]←DS:[SI] (2)修改SI和DI值 * * 汇编语言程序设计 2. REP 串重复操作前缀 格式: REP 串操作指令 执行的操作:重复执行串操作指令,直到CX的值为零 如果(CX)≠ 0: (1)(CX )=(CX )-1 (2)执行串指令 (3)转向(1) 如果(CX)= 0,结束本指令操作 * * 汇编语言程序设计 [例1] 把长度为100的字符串str1复制到str2开始的存储单元中: 假设已经执行如下指令,装载了DS: SI和ES: DI。 MOV AX,SEG str1 ;源数据的段地址 MOV DS,AX ;送入DS LEA SI,str1 ; 源数据的起始偏移地址送入SI MOV AX,SEG str2 ;目的数据的段地址 MOV ES,AX ;送入ES LEA DI,str2 ;
原创力文档


文档评论(0)