汇编加法进位如何放到内存

发布网友 发布时间:2022-04-20 07:36

我来回答

1个回答

热心网友 时间:2023-06-23 22:29

dseg segment
  d0 db 1  ;1byte
  d1 db 2
  d2 db 0

  dd0 dw 1 ;2byte
  dd1 dw 2
  dd2 dw 0

  qd0 dd 1 ;4byte
  qd1 dd 2
  qd2 dd 0
dseg ends

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

  ;1byte
  mov al,d0
  add al,d1  ; d0+d1
  mov d2,al  ; save to d2

  ;2 byte
  mov ax, dd0
  add ax, dd1
  mov dd2, ax

  ;4byte  
  mov ax, word ptr qd0 ;低位数据在低地址,高位数据在高地址
  add ax, word ptr qd1 ;低位数据相加
  mov word ptr qd2, ax ;保存到qd2的低位
  mov ax, word ptr qd0+2 ;高位
  adc ax, word ptr qd1+2 ;高位相加,再加上低位相加时,有可能的进位
  mov word ptr qd2+2, ax ;保存高位。如果高位相加有进位,这里未处理


  mov ax,4c00h
  int 21h
cseg ends
end start

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com