汇编在数据中应用课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《汇编在数据中应用课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 数据 应用 课件
- 资源描述:
-
1、汇编语言在数据处理中的应用 汇编语言在数据处理中应用汇编语言在数据处理中应用1、数值转换中应用 数据输入/输出时的转换2、串操作中应用 串移动、串搜索、串比较、串插入、串删除3、代码转换中应用 ASCII码 BCD码 二进数 BCD码 4、算术运算 ASCII码输入设备ASCII码表示的十进制二进制ASCII码表示的十六进制二进制ASCII码表示的二进制二进制机内二进制操作运算二进制ASCII码表示的十进制二进制ASCII码表示的十六进制二进制ASCII码表示的二进制ASCII码输出设备例例10-1 ASCII码十进制转换为二进制数码十进制转换为二进制数设5位十进数从高位到低位依次是d4、d3
2、、d2、d1、d0。可用下列多项式进行计算:(0*10+d4)*10+d3)*10+d2)*10+d1)*10+d0初始化是0-9ASCII码-30H累加器*10累加器+这一位值修改指令结束NY例例10-1 ASCII码十进制转换为二进制数码十进制转换为二进制数 CHG_DEC_BINPROC ;SI 指向十进制缓冲区首址指向十进制缓冲区首址MOV DX,0 ;初始化;初始化MOV CX,10GET_ASC:MOV AL,SI;取得十进制数;取得十进制数CMP AL,0JB EXITCMP AL,9JA EXITDEC_BIN:SUB AL,30HMOV AH,0PUSH AXMOV AX,D
3、XMUL CX ;*10MOV DX,AXPOP AXADD DX,AXINC SI ;修改指针;修改指针JMP GET_ASCEXIT:RET ;转换后的二进数在转换后的二进数在DX中中 CHG_DEC_BIN ENDP例例10-2 二进制数转换为二进制数转换为 ASCII码十进制码十进制例例10-2 二进制数转换为二进制数转换为ASCII码十进制码十进制 BIN_TO_DEC PROC ;被转换的十进数在被转换的十进数在AX中中 PUSH DI ;DI 指向存放十进数缓冲区首址指向存放十进数缓冲区首址MOV CX,5 ;初始化;初始化 CLEAR_BUF:MOV BYTE PTRDI,IN
4、C DILOOP CLEAR_BUFDEC DIMOV CX,10 CHANGE:MOV DX,0;转换;转换DIV CX ;除以;除以10,余数在,余数在DXADD DL,30H;ASCII码码MOV BYTE PTRDI,DL;存储十进制数;存储十进制数DEC DICMP AX,0 商是否为商是否为0?JNZ CHANGEPOP DIRETBIN_TO_DECENDPASCII码十六进制数转换为二进制数码十六进制数转换为二进制数 十六进制数的字符为09和AF,输入后,ASCII码为30H39H和41H46H 转换时,若是数字09,减30H 若是AF,减去37H例例10-3 ASCII码十六
5、进制数转换为二进制数码十六进制数转换为二进制数 HEX_TO_BIN PROC PUSH AX PUSH CX MOV DX,0 ;转换后结果在转换后结果在DX中中 GET_CHAR:MOV AX,01H ;键盘输入;键盘输入 INT 21H SUB AL,30H JL EXIT CMP AL,0AH JL CHANGE SUB AL,07HCMP AL,0AH ;是否是大写字母;是否是大写字母JL EXITCMP AL,0FHJLE CHANGECMP AL,2AH ;是否是小写字母;是否是小写字母JL EXITCMP AL,2FHJLE CHANGEJMP EXIT CHANGE:MOV
6、CL,4 ;转换;转换SHL DX,CLMOV AH,0ADD DX,AXJMP GET_CHARPOP CXPOP AX EXIT:RET HEX_TO_BIN ENDP汇编语言在串操作中的应用汇编语言在串操作中的应用 串移动(数据块移动)串移动(数据块移动)串搜索串搜索 串比较串比较 串插入串插入 串删除串删除 求串长求串长 数据块移动数据块移动 1、一般情况一般情况 S1 S2 源区 目的区2、特殊情况:特殊情况:源区与目的区重叠源区与目的区重叠 源区 目的区 目的区 源区 例例10-4 串搜索串搜索例例 将串STR中第一个I字符找出,并显示 其在串中的位移量D_SEG SEGMENTS
7、TR DB THIS IS A COMPUTERSTR_LEN=$-STRD_SEG ENDS.LEA DI,STRMOV CX,STR_LENMOV AL,ICLD FOUND:REPNZ SCASBJE OK1JCXZ RETNOK1:MOV DX,DIDEC DL ;第一个;第一个I字符距串头位移量字符距串头位移量MOV BL,DL PUSH CXMOV CL,4SHR DL,CLPOP CXCMP DL,0AHJB OK2ADD DL,7OK2:ADD DL,30HMOV AH,02HINT 21H;显示位移量高位;显示位移量高位MOV DL,BLAND DL,0FHCMP DL,0A
8、HJB OK3 ADD DL,70K3:ADD DL,30HMOV AH,02HINT 21H;显示位移量低位;显示位移量低位MOV DL,HINT 21H RETN:.例例10-5 串比较串比较例例 比较串STR1和STR2是否相等 D_SEG SEGMENTSTR1 DB STRING1STR2 DB STRING2STR_LEN=($-STR1)/2MSG1 DB NOT EQUAL,$MSG2 DB EQUAL,$D_SEG ENDS.LEA SI,STR1MOV DI,OFFSET STR2MOV CX,STR_LENCLDREPE CMPSBJNZ NO_EQUAEQUA:MOV
9、AH,09HLEA DX,MSG2INT 21H;提示两个串相等;提示两个串相等JMP CMP_ENDNO_EQUA:MOV AH,09HLEA DX,MSG1INT 21H;提示两个串不等;提示两个串不等.CMP_END:.串插入串插入串插入分三种情况:1、在目的串首插入 2、在目的串尾插入 3、在目的串中指定的位置插入 例例10-6 串插入串插入例例 将正数N插入一个升序的字数组中,数组的首地址和末地址为 A_HEAD和A_END X 3 A_HEAD X DW?5 A_HEAD DW 3,5,23,49,52,65 23 A_END DW 105 49 N DW 32 52 65 105
10、 A_END 32 N MOV AX,N MOV A_HEAD-2,-1 MOV SI,0 COMPARE:CMP A_ENDSI,AX ;从最后一个元素开始比较;从最后一个元素开始比较 JLE INSERT MOV BX,A_ENDSI MOV A_ENDSI+2,BX ;后移一个元素;后移一个元素 SUB SI,2 JMP COMPARE INSERT:MOV A_ENDSI+2,AX ;插入;插入 .串删除串删除 例例10-7 串删除串删除例例 附加段中有一个首地址为 LIST的字数组,数组的第一字中存放该数组长度,数组首地址在DI中,数X在AX中,现要在数组中查找X,若找到则删除。CL
11、D PUSH DI MOV CX,ES:DI;数组长度送;数组长度送CX ADD DI,2;DI指向第一个元素指向第一个元素 REPNE SCASW;串扫描;串扫描 JE DELETE;如找到则删除;如找到则删除 POP DI;否则,退出;否则,退出 JMP EXITDELET:JCXZ DEC_CNT;若;若CX=0,X为最后一个元素为最后一个元素NEXT_EL:MOV BX,ES:DI MOV ES:DI-2,BX;向前移动一个元素向前移动一个元素 ADD DI,2 LOOP NEXT_ELDEC_CNT:POP DI DEC WORD PTR ES:DI;数组元素个数减数组元素个数减1E
展开阅读全文