当前位置:编程学习 > 汇编语言 >>

请用汇编语言实现两个数的加法,结果存在BX中、用汇编语言、

答案:具体要求! 是要求输入还是怎么的啊?? data segment data ends code segment assume cs:code,da:data start: mov ax,data mov ds,ax mov bx,0 mov ah,1 int 21h ;输入一个一位数 mov ah,0 mov bl,al sub bx,30h mov ah,1 int 21h ;再输入一个一位数 sub al,30h add bl,al; 结果放入bx mov ax,004ch int 21h code ends end start
其他:给你个五位数相加的程序吧  如果有具体要求请做相应修改
data segment
  in_msg1 db "please input the first number(5 bit) :","$"              ;设置输入提示信息1
  in_dat1 db 6,0,6 dup(0)                                 ;设置输入缓冲区1
  in_msg2 db 0ah,0dh,"please input the second number(5 bit):","$"      ;设置输入提示信息2
  in_dat2 db 6,0,6 dup(0)                                 ;设置输入缓冲区2
  out_msg db 0ah,0dh,"the sum is:",20h                      ;设置输出提示信息
  out_dat db 6 dup(0),"$"                                  ;设置输出缓冲区ata ends
code segment
     assume cs:code,ds:data
start:mov ax,data
      mov ds,ax
      mov dx,offset in_msg1                 
      mov ah,9
      int 21h                               ;输出提示信息
      mov dx,offset in_dat1
      mov ah,0ah
      int 21h                               ;输入第一个加数

      mov dx,offset in_msg2     
      mov ah,9
      int 21h                               ;输出提示信息,提示输入第2个数
      mov dx,offset in_dat2
      mov ah,0ah
      int 21h                               ;输入第二个加数


      mov si,offset in_dat1                 ;设置第一加数的指针
      mov di,offset in_dat2                 ;设置第二加数的指针
      mov bx,offset out_dat                 ;设置结果的指针
      add si,6                             ;将指针指向第一加数的个位数(最后一个数)
      add di,6                            ;将指针指向第二加数的个位数(最后一个数)
      add bx,5                              ;将指针指向结果的个位数(最后一个数)

      clc
      mov ah,0
      mov cx,5                             ;清除进位标志,并设置循环次数
lop1: mov al,[si]
      adc al,[di]                           ;加数一和加数二相加,
      aaa                                   ;结果进行分离BCD加法调整
      mov [bx],al                           ;相加结果送结果存储区
      dec si
      dec di
      dec bx                                 ;三个指针上移,指向前一位数。
      loop lop1
      
      adc byte ptr [bx],0

      mov cx,6
      mov bx,offset out_dat
lop2: mov al,[bx]
      and al,0fh
      add al,30h                             ;得到的结果进行ASCII码转换。
      mov [bx],al
      inc bx
      loop lop2

      mov dx,offset out_msg                  ;将提示信息及运算结果输出
      mov ah,9
      int 21h

      mov ah,4ch
      int 21h
code ends
      end start MOV AX,D1
ADD AX,D2
MOV BX,AX
(其中D1、D2是那两个数)

上一个:用汇编语言写以下的要求:
下一个:汇编语言问题,帮帮忙。

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,