例:把BX中的二进制数以十六进制的形式显示在屏幕上 BX
6 BX 1 2 3 4 例:把 BX中的二进制数以十六进制的形式显示在屏幕上
mov ch 4 rotate: mov Cl, 4 ro bx. cl mov al, bl and al. ofh add al 30h ,0N9 ASCII 30H~39H cmp al, 3ah println add al. h A~’F’ASC工I41H~46H printit: mov dl, al mov ah 2 int 21h dec ch nz rotate 7
7 …… mov ch, 4 rotate: mov cl, 4 rol bx, cl mov al, bl and al, 0fh add al, 30h ; ’0’~’9’ ASCII 30H~39H cmp al, 3ah jl printit add al, 7h ; ’A’~’F’ ASCII 41H~46H printit: mov dl, al mov ah, 2 int 21h dec ch jnz rotate ……
例:从键盘接收十进制数并存入BX mov bx. 0 lewchar: moy ah 1 int 21h sub al, 30h J1 exit 0退出 cmp al, 9 exit ;>9退出 cbW xchg ax, bx mov Cx. 10 mul CX xchg ax, bx add bx. ax ]mp newchar exit
8 …… mov bx, 0 newchar: mov ah, 1 int 21h sub al, 30h jl exit ; <0 退出 cmp al, 9 jg exit ; >9 退出 cbw xchg ax, bx mov cx, 10 mul cx xchg ax, bx add bx, ax jmp newchar exit: …… 例:从键盘接收十进制数并存入BX
例:从键盘接收十六进制数并存入BX mov bx, 0 newchar mov ah 1 int 21h sub al, 30h j1 exit <0退出 cmp a, 10 j add_to sub al. 27h cmp al, Oah j exit ;<a’退出 cmp al, 10h Jge exIt f’退出 add to: moV Cl 4 shi bx. cl mov ah 0 add bx. ax ]mp newchar exit
9 …… mov bx, 0 newchar: mov ah, 1 int 21h sub al, 30h jl exit ; <0 退出 cmp al, 10 jl add_to sub al, 27h ; ‘a’~‘f’ cmp al, 0ah jl exit ; <‘a’ 退出 cmp al, 10h jge exit ; >’f’ 退出 add_to: mov cl, 4 shl bx, cl mov ah, 0 add bx, ax jmp newchar exit: …… 例:从键盘接收十六进制数并存入BX