非压缩BCD码转压缩BCD码汇编语言
2016-11-15 23:48
246 查看
DATAS SEGMENT
;此处输入数据段代码
buf dw 0302h,0908h,0705h,0102h
res db ?
buf_size db ?
res_size db ?
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
;宏 显示一个字符
dispchar macro char
mov ah,2
mov dl,char
int 21h
endm
;宏定义完成
;宏 显示字符串
dispmsg macro message
mov ah,9
lea dx,message
int 21h
endm
;宏定义完成
;宏 显示十六进制数的四位
disphex macro hexdata
local disphex1
push ax
push bx
push cx
push dx
mov bx,hexdata
mov cx,0404h
disphex1: rol bx,cl
mov al,bl
and al,0fh
call htoasc
dispchar al
dec ch
jnz disphex1
pop dx
pop cx
pop bx
pop ax
endm
;宏定义完成
mov cx, lengthof buf
lea si,buf
lea di,res
again:
mov ax,word ptr [si]
;disphex ax
call bcd
mov byte ptr [di],al
inc si
inc si
inc di
loop again
;显示RES的内容
lea si, res
;disphex [si+4]
disphex [si+2]
disphex [si]
MOV AH,4CH
INT 21H
;子程序压缩BCD转非压缩BCD
BCD proc
push cx
mov cl,4
shl al,cl
shr ax,cl
pop cx
ret
BCD endp
;子程序十六进制转ASCII
HTOASC proc
push bx
mov bx,offset ASCII
and al,0fh
xlat ASCII
pop bx
ret
ASCII db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h
db 41h,42h,43h,44h,45h,46h
HTOASC endp
CODES ENDS
END START
;此处输入数据段代码
buf dw 0302h,0908h,0705h,0102h
res db ?
buf_size db ?
res_size db ?
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
;宏 显示一个字符
dispchar macro char
mov ah,2
mov dl,char
int 21h
endm
;宏定义完成
;宏 显示字符串
dispmsg macro message
mov ah,9
lea dx,message
int 21h
endm
;宏定义完成
;宏 显示十六进制数的四位
disphex macro hexdata
local disphex1
push ax
push bx
push cx
push dx
mov bx,hexdata
mov cx,0404h
disphex1: rol bx,cl
mov al,bl
and al,0fh
call htoasc
dispchar al
dec ch
jnz disphex1
pop dx
pop cx
pop bx
pop ax
endm
;宏定义完成
mov cx, lengthof buf
lea si,buf
lea di,res
again:
mov ax,word ptr [si]
;disphex ax
call bcd
mov byte ptr [di],al
inc si
inc si
inc di
loop again
;显示RES的内容
lea si, res
;disphex [si+4]
disphex [si+2]
disphex [si]
MOV AH,4CH
INT 21H
;子程序压缩BCD转非压缩BCD
BCD proc
push cx
mov cl,4
shl al,cl
shr ax,cl
pop cx
ret
BCD endp
;子程序十六进制转ASCII
HTOASC proc
push bx
mov bx,offset ASCII
and al,0fh
xlat ASCII
pop bx
ret
ASCII db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h
db 41h,42h,43h,44h,45h,46h
HTOASC endp
CODES ENDS
END START
相关文章推荐
- 汇编语言:编写code段中的代码,用push指令将a段中的前8个字型数据,逆序存储b段中
- 操作系统汇编语言实现彩色输出斐波拉契数列
- 八九年前,艰苦的学习了汇编语言,今天看来当初的付出值得了
- R语言基础编程技巧汇编 - 12
- 汇编语言(王爽)-第十二章
- 汇编语言(王爽)-第十四章
- 王爽-汇编语言-综合研究二-使用寄存器
- 数据结构中的栈与汇编语言中的栈的区别
- Linux 汇编语言开发指南
- 汇编语言 在代码段中使用栈
- LINUX 汇编语言开发指南
- x264汇编语言的资料
- keil C语言与汇编语言混合编程
- 汇编语言转移指令规则汇总
- 汇编语言 循环判断 输入是否为数字
- Linux 汇编语言开发指南
- 汇编语言 手记8
- 汇编语言 王爽 实验十 解决除法溢出问题
- 汇编语言基础总结(一)
- 汇编语言