汇编语言在数据处理中的应用.ppt
《汇编语言在数据处理中的应用.ppt》由会员分享,可在线阅读,更多相关《汇编语言在数据处理中的应用.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、http:/http:/现代微机原理与接口技术现代微机原理与接口技术1、数值转换中应用、数值转换中应用 数据输入数据输入/输出时的转换输出时的转换2、串操作中应用、串操作中应用 串移动、串搜索、串比较、串移动、串搜索、串比较、串插入、串删除串插入、串删除3、代码转换中应用、代码转换中应用 ASCII码码 BCD码码 二进数二进数 BCD码码 4、算术运算、算术运算 在这一部分,我们将汇编语言在数据处理中的应用集在这一部分,我们将汇编语言在数据处理中的应用集在这一部分,我们将汇编语言在数据处理中的应用集在这一部分,我们将汇编语言在数据处理中的应用集中起来给大家,其中有些程序在中起来给大家,其中有
2、些程序在中起来给大家,其中有些程序在中起来给大家,其中有些程序在1111章中已经介绍过。章中已经介绍过。章中已经介绍过。章中已经介绍过。汇编语言在数据处理中应用汇编语言在数据处理中应用(自学自学)1http:/http:/现代微机原理与接口技术现代微机原理与接口技术ASCII码输入设备码输入设备ASCII码表示的码表示的十进制十进制二进制二进制ASCII码表示的码表示的十六进制十六进制二进制二进制ASCII码表示的码表示的二进制二进制二进制二进制机内二进制操作运算机内二进制操作运算二进制二进制ASCII码码表示的十进制表示的十进制二进制二进制ASCII码码表示的十六进制表示的十六进制二进制二进
3、制ASCII码码表示的二进制表示的二进制ASCII码输出设备码输出设备2http:/http:/现代微机原理与接口技术现代微机原理与接口技术ASCII码十进制转换为二进制数码十进制转换为二进制数设设5位十进数从高位到低位位十进数从高位到低位依次是依次是d4、d3、d2、d1、d0。可用下列多项式进行计算:可用下列多项式进行计算:(0*10+d4)*10+d3)*10+d2)*10+d1)*10+d0初始化初始化是是0-9ASCII码码-30H累加器累加器*10累加器累加器+这一位值这一位值修改指令修改指令结束结束NY汇编语言在数值转换中的应用汇编语言在数值转换中的应用3http:/http:/
4、现代微机原理与接口技术现代微机原理与接口技术 CHG_DEC_BIN PROC ;SI SI 指向十进制缓冲区首址指向十进制缓冲区首址指向十进制缓冲区首址指向十进制缓冲区首址MOV DX,0 ;初始化;初始化MOV CX,10GET_ASC:MOV AL,SI;取得十进制数;取得十进制数CMP AL,0JB EXITCMP AL,9JA EXITDEC_BIN:SUB AL,30HMOV AH,0PUSH AXPUSH AXMOV AX,DXMUL CX ;*10MOV DX,AXPOP AXPOP AXADD DX,AXINC SI ;修改指针;修改指针JMP GET_ASCEXIT:RET
5、 ;转换后的二进数在转换后的二进数在转换后的二进数在转换后的二进数在DXDX中中中中 CHG_DEC_BIN ENDP4http:/http:/现代微机原理与接口技术现代微机原理与接口技术二进制数转换为二进制数转换为 ASCII码十进制码十进制5http:/http:/现代微机原理与接口技术现代微机原理与接口技术BIN_TO_DEC PROC ;被转换的十进数在被转换的十进数在被转换的十进数在被转换的十进数在AXAX中中中中 PUSH DI ;DI DI 指向存放十进数缓冲区首址指向存放十进数缓冲区首址指向存放十进数缓冲区首址指向存放十进数缓冲区首址MOV CX,5 ;初始化;初始化 CLEA
6、R_BUF:MOV BYTE PTRDI,INC DILOOP CLEAR_BUFDEC DIMOV CX,10 CHANGE:MOV DX,0MOV DX,0;转换;转换;转换;转换DIV CX DIV CX ;除以;除以;除以;除以1010,余数在,余数在,余数在,余数在DXDXADD DL,30HADD DL,30H;ASCIIASCII码码码码MOV BYTE PTRDI,DLMOV BYTE PTRDI,DL;存储十进制数;存储十进制数;存储十进制数;存储十进制数DEC DIDEC DICMP AX,0 CMP AX,0 商是否为商是否为商是否为商是否为0 0?JNZ CHANGEJ
7、NZ CHANGEPOP DIRETBIN_TO_DECENDP6http:/http:/现代微机原理与接口技术现代微机原理与接口技术ASCIIASCII码十六进制数转换为二进制数码十六进制数转换为二进制数码十六进制数转换为二进制数码十六进制数转换为二进制数 十六进制数的字符为十六进制数的字符为09和和AF,输入后,输入后,ASCII码为码为30H39H和和41H46H 转换时,转换时,若是数字若是数字若是数字若是数字0909,减,减,减,减30H30H 若是若是若是若是AFAF,减去,减去,减去,减去37H37H HEX_TO_BIN PROC PUSH AX PUSH CX MOV DX,
8、0 ;转换后结果在转换后结果在转换后结果在转换后结果在DXDX中中中中 GET_CHAR:MOV AX,01H ;键盘输入;键盘输入 INT 21H SUB AL,30H JL EXIT CMP AL,0AH JL CHANGE SUB AL,07H7http:/http:/现代微机原理与接口技术现代微机原理与接口技术CMP AL,0AH ;是否是大写字母;是否是大写字母JL EXITCMP AL,0FHJLE CHANGECMP AL,2AH ;是否是小写字母;是否是小写字母JL EXITCMP AL,2FHJLE CHANGEJMP EXIT CHANGE:CHANGE:MOV CL,4M
9、OV CL,4 ;转换;转换;转换;转换SHL DX,CLSHL DX,CLMOV AH,0MOV AH,0ADD DX,AXADD DX,AXJMP GET_CHARJMP GET_CHARPOP CXPOP AX EXIT:RET HEX_TO_BIN ENDP8http:/http:/现代微机原理与接口技术现代微机原理与接口技术 串移动(数据块移动)串移动(数据块移动)串移动(数据块移动)串移动(数据块移动)串搜索串搜索串搜索串搜索 串比较串比较串比较串比较 串插入串插入串插入串插入 串删除串删除串删除串删除 求串长求串长求串长求串长汇编语言在串操作中的应用汇编语言在串操作中的应用9ht
10、tp:/http:/现代微机原理与接口技术现代微机原理与接口技术 数据块移动数据块移动数据块移动数据块移动 1、一般情况、一般情况 S1 S2 源区源区 目的区目的区2、特殊情况:、特殊情况:源区与目的区重叠源区与目的区重叠源区与目的区重叠源区与目的区重叠 源区源区 目的区目的区 目的区目的区 源区源区 10http:/http:/现代微机原理与接口技术现代微机原理与接口技术串搜索例串搜索例串搜索例串搜索例 将串将串STR中第一个中第一个I字符找出,并显示其在串中的位移量字符找出,并显示其在串中的位移量D_SEG SEGMENTSTR DB THIS IS A COMPUTERSTR_LEN=
11、$-STRD_SEG ENDS.LEA DI,STRMOV CX,STR_LENMOV AL,ICLD FOUND:REPNZ SCASBREPNZ SCASBJE OK1JCXZ RETNOK1:OK1:MOV DX,DIMOV DX,DIDEC DLDEC DL ;第一个;第一个;第一个;第一个II字符距串头位移量字符距串头位移量字符距串头位移量字符距串头位移量MOV BL,DLMOV BL,DL11http:/http:/现代微机原理与接口技术现代微机原理与接口技术PUSH CXMOV CL,4SHR DL,CLPOP CXCMP DL,0AHJB OK2ADD DL,7OK2:ADD
12、DL,30HMOV AH,02HINT 21H;显示位移量高位;显示位移量高位MOV DL,BLAND DL,0FHCMP DL,0AHJB OK30K3:ADD DL,30HMOV AH,02HINT 21H;显示位移量低位;显示位移量低位MOV DL,HINT 21H RETN:.12http:/http:/现代微机原理与接口技术现代微机原理与接口技术串比较例串比较例串比较例串比较例 比较串比较串STR1和和STR2是否相等是否相等 D_SEG SEGMENTSTR1DB STRING1STR2DB STRING2STR_LEN=($-STR1)/2MSG1DB NOT EQUAL,$MS
13、G2DB EQUAL,$D_SEG ENDS.LEA SI,STR1MOV DI,OFFSET STR2MOV CX,STR_LENCLD13http:/http:/现代微机原理与接口技术现代微机原理与接口技术REPE CMPSBREPE CMPSBJNZ NO_EQUAEQUA:MOV AH,09HLEA DX,MSG2INT 21H;提示两个串相等;提示两个串相等JMP CMP_ENDNO_EQUA:MOV AH,09HLEA DX,MSG1INT 21H;提示两个串不等;提示两个串不等.CMP_END:.14http:/http:/现代微机原理与接口技术现代微机原理与接口技术串插入串插入
14、串插入串插入串插入分三种情况:串插入分三种情况:1、在目的串首插入、在目的串首插入 2、在目的串尾插入、在目的串尾插入 3、在目的串中指定的位置插入、在目的串中指定的位置插入串插入例串插入例串插入例串插入例 将正数将正数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 A_END 32 N15http:/http:/现代微机原理与接口技术现代微机原理与接口技术
15、MOV AX,N MOV A_HEAD-2,-1MOV 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 ;插入;插入;插入;插入 .16http:/http:/现代微机原理与接口技术现代微机原理与接口技术串删除串
16、删除串删除串删除 串删除例串删除例串删除例串删除例 附加段中有一个首地址为附加段中有一个首地址为 LIST的字数组,数组的第一的字数组,数组的第一字中存放该数组长度,数组字中存放该数组长度,数组首地址在首地址在DI中,数中,数X在在AX中,中,现要在数组中查找现要在数组中查找X,若找,若找到则删除。到则删除。17http:/http:/现代微机原理与接口技术现代微机原理与接口技术 CLD PUSH DI MOV CX,ES:DI;数组长度送;数组长度送CX ADD DI,2;DI指向第一个元素指向第一个元素 REPNE SCASWREPNE SCASW;串扫描;串扫描 JE DELETE;如找
17、到则删除;如找到则删除 POP DI;否则,退出;否则,退出 JMP EXITDELET:JCXZ DEC_CNTJCXZ 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;数组元素个数减数组元素个数减数组元素个数减数组元素个数减1 1EXIT:.18http:/http:/现代微机原理与接口技术现代微机原理与接口技术 求
18、串长求串长求串长例求串长例求串长例求串长例 求字符串的长度送入求字符串的长度送入LEN,假定串以,假定串以$结束结束 STRING DB Hello,How are you!,$.MOV SI,OFFSET STRING XOR BL,BLLOP:MOV AL,SI CMP AL,$CMP AL,$JZ DONE INC BL INC SI JMP LOPDONE:MOV LEN,BL 19http:/http:/现代微机原理与接口技术现代微机原理与接口技术1 1、十进制、十进制、十进制、十进制ASCII ASCII 码转换成码转换成码转换成码转换成BCDBCD码码码码2 2、BCDBCD码转
19、换成十进制数的码转换成十进制数的码转换成十进制数的码转换成十进制数的ASCIIASCII码码码码3 3、二进制数转换为、二进制数转换为、二进制数转换为、二进制数转换为BCDBCD码码码码4 4、BCDBCD码转换为二进制数码转换为二进制数码转换为二进制数码转换为二进制数汇编语言在代码转换中的应用汇编语言在代码转换中的应用20http:/http:/现代微机原理与接口技术现代微机原理与接口技术十进制十进制十进制十进制ASCII ASCII 码转换成码转换成码转换成码转换成BCDBCD码例码例码例码例 令令ASC_BUF开始的缓冲区开始的缓冲区内存放着若干个内存放着若干个ASCII码表示码表示 A
20、SC_BUF 31H 的十进制数,的十进制数,(每个单元存放一每个单元存放一 32H个十进制数个十进制数),要求将其转换成,要求将其转换成 33HBCD码,并把两个相邻单元的码,并把两个相邻单元的 34HBCD码合并在一个存储单元中码合并在一个存储单元中 35H 若若ASCII码的个数为奇数,码的个数为奇数,则将首地址单元的十进制数对则将首地址单元的十进制数对 应的应的BCD码单独存放一个单元码单独存放一个单元,BCD_BUF 1其余的按统一方法处理其余的按统一方法处理 32 子程序名:子程序名:DEC_ASC_BCD 54入口参数:入口参数:入口参数:入口参数:DS:SIDS:SI指向指向指
21、向指向ASCIIASCII码首地址码首地址码首地址码首地址ASC_BUFASC_BUF ES:DI ES:DI指向指向指向指向BCDBCD码首地址码首地址码首地址码首地址BCD_BUFBCD_BUF CX=CX=串长度串长度串长度串长度,DS,ES,DS,ES指向同一个段指向同一个段指向同一个段指向同一个段 出口参数:出口参数:出口参数:出口参数:BCDBCD码存放在码存放在码存放在码存放在BCD_BUFBCD_BUF为首地址的缓冲区内为首地址的缓冲区内为首地址的缓冲区内为首地址的缓冲区内 21http:/http:/现代微机原理与接口技术现代微机原理与接口技术DEC_ASC_BCD PROC
22、 FAR PUSH SI ;保护现场;保护现场 PUSH DI PUSH AX PUSH BX PUSH CX ROR CX,1ROR CX,1 JNC NEXT JNC NEXT ;ASCII码为偶数个转移码为偶数个转移 ROL CXROL CX LODSB LODSB ;取;取;取;取ASCIIASCII码到码到码到码到ALAL AND AL,0FH AND AL,0FH ;ASCIIASCII码转换成码转换成码转换成码转换成BCDBCD码码码码 STOSB STOSB ;存储;存储;存储;存储BCDBCD码码码码 DEC CX DEC CX ROR CX,1 ROR CX,1 ;奇数个时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 数据处理 中的 应用
限制150内