题目

编程以十进制形式显示BX的值(假设为无符号数)。

步骤

(1)转换并保存结果。
(2)显示。

程序

DATA   SEGMENT               
    DECNUM   DB   5 DUP(?)  
DATA    ENDS
CODE    SEGMENT                 
   ASSUME CS:CODE,DS:DATA
START: 
    MOV  AX,DATA
    MOV  DS,AX 
    MOV  BX,65530 ;要转换的值
    LEA  SI,DECNUM
  MOV  DX,0  
  MOV  AX,BX
    MOV  CX,10000
    DIV  CX
    MOV  [SI],AL;求得万位的值,存入指定单元
    INC  SI
    MOV  AX,DX ;上次计算的余数存在DX中
    MOV  DX,0
    MOV  CX,1000                
    DIV  CX
    MOV  [SI],AL;求得千位的值,存入指定单元

   INC  SI
    MOV  AX,DX
    MOV  DX,0
    MOV  CX,100
    DIV  CX
    MOV  [SI],AL;求得百位的值,存入指定单元
    INC  SI
    MOV  AX,DX
    MOV  CL,10
    DIV  CL
    MOV  [SI],AL;求得十位的值,存入指定单元
  INC  SI
    MOV  [SI],AH ;此时,余数就是个位的值,
    LEA  SI,DECNUM
   ;以下代码开始显示存储在存储单元中的十进制数
    MOV  CX,5
DISP:   
    MOV DL,[SI] ;依次取出十进制数各位的值
    OR  DL,30H  ;将取出的值转换为ASCII值
    MOV  AH,2
    INT  21H        ;利用DOS功能调用,显示
    INC  SI
    LOOP  DISP
 MOV  DL,'D'
    MOV  AH,2
    INT  21H
    MOV  AH,4CH
    INT  21H
CODE    ENDS
    END     START


0
Posted in 汇编语言

Leave a Comment:

电子邮件地址不会被公开。