代码转换程序设计
sub ax,ax mov ch,4 mov cl,4
mov bx,4a8fh rotate: rol bx,cl mov al,bl and al,0fh add al,30h cmp al,3ah jl printit add al,7h printit: mov dl,al mov ah,2 int 21h dec ch jnz rotate mov dl,'H' mov ah,2 int 21h ret change3 endp code ends end
附录1.5十六进制数向二进制数转换模块源程序
public change4 data segment
buf db 0ah,0dh,'please input the four hexnumber:$' data ends code segment
assume cs:code,ds:data change4 proc far mov ax,data mov ds,ax lea dx,buf mov ah,9 int 21h mov bx,0 mov ch,4 input: mov cl,4 sal bx,cl mov ah,1 int 21h cmp al,39h ja af
and al,0fh jmp binary af: and al,0fh add al,9 binary: or bl,al dec ch cmp ch,0 jne input mov dl,'H' mov ah,2 int 21h mov dl,0ah
14
汇编语言课程设计报告(2011)
mov ah,2 int 21h mov dl,0dh mov ah,02 int 21h mov cx,16 disp: mov dl,0 rol bx,1 rcl dl,1 or dl,30h mov ah,02h int 21h loop disp mov dl,'B' mov ah,2 int 21h ret change4 endp code ends end
附录1.6十六进制数向十进制数转换模块源程序
public change5 data segment
binary dw 7fffh,50h n=($-binary)/2 buf db 7 dup(0)
info1 db 0ah,0dh,'this is the change from hexnumber to decimal:$' info2 db 0ah,0dh,'the number is:7fffh,50h$',0ah,0dh info3 db 0ah,0dh,'the result is:$' data ends
stack segment stack db 200 dup(0) stack ends code segment
assume cs:code,ds:data,ss:stack f2to10 proc near push bx push dx push si push cx disp macro m lea dx,m mov ah,9 int 21h endm lea si,buf or ax,ax jns plus neg ax
mov [si],byte ptr '-' inc si plus: mov bx,10 mov cx,0 lop1: mov dx,0 div bx push dx
15
代码转换程序设计
inc cx or ax,ax jne lop1 lop2: pop ax cmp al,10 jb l1 add al,7 l1: add al,30h mov [si],al inc si dec cx jne lop2
mov [si],byte ptr 'D' inc si
mov [si],byte ptr '$' disp info3 disp buf pop cx pop si pop dx pop bx ret f2to10 endp change5 proc far start: mov ax,data mov ds,ax disp info1 disp info2 mov cx,n lea di,binary lopa: mov ax,[di] call f2to10 add di,2 loop lopa ret change5 endp code ends end
16