回 帖 发 新 帖 刷新版面

主题:请高手帮忙写一个简单程序

编写一个完整的汇编程序,将内存中的X值(一个无符号整数),以十进制形式显示在屏幕上

必给分

回复列表 (共3个回复)

沙发

code segment
  assume cs:code
  org 100h
start:
  jmp install
  x dw 3272; 你要显示的数
  tmp db 5 dup(0)
  result db 6 dup(0)
install:
  mov ax,x
  mov bx,10
  mov cx,5
  lea di,tmp[4]
  std
loop1start:
  sub dx,dx
  div bx
  xchg ax,dx
  stosb
  xchg ax,dx
  loop loop1start
  lea si,tmp
  mov cx,5
  cld
loop2start:
  lodsb
  or al,al
  jnz loop2end
  loop loop2start
loop2end:
  dec si
  lea di,result
loop3start:
  lodsb
  add al,30h
  stosb
  loop loop3start
  mov al,24h
  stosb
  mov ah,9
  lea dx,result
  int 21h
  int 20h
code ends
end start

板凳

title  getbx (com文件) 
.model tiny
.code
org 100h
;---------------------
start:

    mov  bx,123 ;要显示的数X = 123
    mov  dx,0  ;装入
    mov  ax,bx ;被除数
    lea si,sss ;
    mov cx,1
    mov bx,10     ;装入除数
@10:    
    cmp ax,10;小于10
    jb @20
    xor dx,dx    ;异或清0 ,等价;mov dx,0
    div bx       ;除以10后取余数
    or dl,030h   ;余数变成对应的 ASC2 码
    mov [si],dl  ;保存ASC2 码
    inc si
    inc cx
    jmp @10
@20:
    or al,030h
    mov [si],al
@30:
    mov ah,02h  ;反向逐个
    mov dl,[si] ;显示被保存的ASC2 码
    int 21h
    dec si
    loop @30
.exit
sss db  5 dup(?)
end start

3 楼

请给分!
测试过,完全正确!

我来回复

您尚未登录,请登录后再回复。点此登录或注册