zoukankan      html  css  js  c++  java
  • 【汇编程序】编程将两数相加 结果存入sum单元中。

     程序需求:在存储单元中A1和A2中 各存有一个2字节无符号数 低字节在前 高字节在后,编程将两数相加,结果存入sum单元中,也要求低字节在前 高字节在后,进位存入最后一个字节单元

    编程思路:首先定义一个数据段,一个变量A1和变量A2 DB 一字节空间 ,在程序进行时 将程序的CF 进位标志位清零。然后CLC 使用BX 来做寄存器基址变址寻址,依次将 A1和A2中的 低字节和高字节中的无符号数字 相加,接着去判断CF 进位符号位是否是1 如果没有 进位 程序终止,如果CF=1 有进位 就进入INC BX 进入SUM[3] 存入 进位的数字。

    ;在存储单元中A1和A2中  各存有一个2字节无符号数 低字节在前 高字节在后 编程将两数相加 结果存入sum单元中。
    ;也要求低字节在前 高字节在后, 进位存入最后一个字节单元    
    data segment
        a1 db 56h,78h ;数A1
        a2 db 4fh,9ah ;数A2
        sum db 3 dup(0);存两数相加之和 考虑进位位
        data ends
    code segment
        assume cs:code,ds:data
        
       begin: mov ax,data
              mov ds,ax               ;设置数据段基址
              mov bx,0                ;bx 为地址指针 初值清0
              clc                     ;进位位清0 
              mov al,a1[bx]     ;取低字节al
              adc al,a2[bx]     ;
              mov sum[bx],al
              inc bx
              mov al,a1[bx]
              adc al,a2[bx]
              mov sum[bx],al
              jnc stop
              inc bx
              mov al,0
              inc al
              mov sum[bx],al
         stop: mov ax,4c00h
              int 21h
         code ends
              end begin
  • 相关阅读:
    python3 TypeError: a bytes-like object is required, not 'str'
    Centos 安装Python Scrapy PhantomJS
    Linux alias
    Vim vimrc配置
    Windows下 Python Selenium PhantomJS 抓取网页并截图
    Linux sort
    Linux RSync 搭建
    SSH隧道 访问内网机
    笔记《鸟哥的Linux私房菜》7 Linux档案与目录管理
    Tornado 错误 "Global name 'memoryview' is not defined"
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860879.html
Copyright © 2011-2022 走看看