华东理工大学《微机原理》第四章.ppt
文本预览下载声明
* * 第20节 * 第21节 * 第22节 * 第24节 * 第25节 * 第23节 * 第26节 微机原理及接口技术 5.二进制→ BCD 十六位二进制数转换成BCD码。 方法1: 找出二进制数中所包含的10000, 1000,100,10的个数,即BCD码。 方法2: 二进制数B B=bm-1× 2m-1+ ┄ +b1 × 21+b0 = (┅(bm-1×2+bm-2) × 2+ ┅ +b1) × 2+b0 初值 B=0,i=m-1 B=B×2+bi i=i-1 结束条件:i<0 乘法和加法用十进制运算,结果为BCD码。 微机原理及接口技术 例4-15:采用方法1,16位二进制→5位非压缩BCD码 (2) mov ax,bnum lea bx,a_strg mov dl,0 ;计数清0 说明:(1)数据段 bnum dw 270fh ;16位二进制数 a_strg db 5dup(?) ;5个单元存BCD码 again1:sub ax,2710h js next1 inc dl jmp again1 next1:…. 万位 包含10000的个数 10000 处理1000,100,10 减10000 微机原理及接口技术 若程序中采用除法指令,即: mov dx,0 mov ax,bnum mov cx,10000 div cx xchg ax,dx 被除数 二进制数 商(BCD码)在dx,余数在ax 除数10000 二进制数 微机原理及接口技术 例4-16:采用方法2, 16位二进制→4位压缩BCD码(≤9999) 说明: 输入:DX放16位二进制数 输出:CF=0,AX=4位压缩BCD码 CF=1,转换数9999,DX不变 btobcd proc far cmp dx,9999 jbe tran stc jmp exit tran: 9999 9999,置CF=1,退出 微机原理及接口技术 tran:mov ax,0 mov cx,16 again:clc rcl dx,1 adc ax,ax daa loop again clc exit:ret btobcd endp 16位 结果(BCD)清0 循环左移bi→CF B×2+bi 十进制调整 ax中为BCD 返回 28 微机原理及接口技术 七、字符串处理程序 字符:ASCII码 说明: (1) ASCII码数字、字母形成一个有序序列: 0~9:30H ~ 39H A~Z:41H ~ 5AH a~z:61H ~ 7AH (2) 一些I/O装置(键盘,显示器,打印机)采 用ASCII码传送。 (3) 常用的控制字符:0AH 换行(LF) 0DH 回车(CR) 微机原理及接口技术 1.确定字符串长度 字符串长度不定,以某个特定字符为结束符。 例4-17:从头搜索字符串的结束符,统计长度。 (1) 数据段 data segment string db ‘abcduvwxyz’,0dh ll db ? cr equ 0dh data ends 字符串string cr:结束符 串长度放ll 单元 (2) 堆栈段 stack segment para stack
显示全部