将十进制数67分别转化为二进制和十六进制数,写出过程和结果! 详细点谢谢大佬!

2025-03-10 04:28:45
推荐回答(1个)
回答1:

dseg segment
  hextb db '0123456789ABCDEF'
  crlf db 0dh,0ah,'$'
dseg ends

cseg segment
assume cs:cseg, ds:dseg
start:
  mov ax, dseg
  mov ds, ax

  mov ax, 67
  push ax
  mov bx, ax
  call printBin  ;bx传递参数
  mov ah,9
  lea dx, crlf
  int 21h

  pop dx
  call printHex  ;dx传递参数


  mov ah,4ch
  int 21h

printBin proc near
  mov cx,16
  mov ah,0eh
p1:
  rol bx,1
  mov al,bl
  and al,1
  xor al,30h
  int 10h
  loop p1
  ret
printBin endp

printHex proc near
  mov cx,404h
  mov ah,0eh
  mov dx, bx
  lea bx, hextb
p0:
  rol dx, cl
  mov al, dl
  and al,0fh
  xlat
  int 10h
  dec ch
  jnz p0
  ret
printHex endp

cseg ends
end start