【问题标题】:Emu8086 assembly adderEmu8086汇编加法器
【发布时间】:2016-10-31 16:41:44
【问题描述】:

我正在尝试编写一个汇编程序来添加小于 A0H 的数字(初始化为 nums)。但是,当我运行此程序时,它无法添加任何数字。任何帮助将不胜感激。

     PAGE 60,132
TITLE COOLADDER

    .MODEL SMALL
    .STACK 64     


    .DATA
NUMS DB 01H,01H,01H,01H,0A1H,0A1H
SUM DB ?
CC DB ?

    .CODE
MAIN PROC FAR
MOV AX,@DATA
MOV DS,AX
MOV CX,6
MOV BX,OFFSET NUMS    
MOV AL,0

AGAIN:  
MOV DI,0A0H      
CMP DI,[BX]
JNA RES

ADD AL,[BX]   
MOV CC,AL
RES:  
INC BX
DEC CX
JNZ AGAIN
MOV SUM,AL
MOV AH,4CH
INT 21H


MAIN ENDP
     END MAIN

【问题讨论】:

  • 您需要什么帮助?有什么问题?
  • 它应该添加所有由“num”声明的小于“0A0H”的数字,但是它添加了所有在“num”中声明的数字。通过调试,我发现“CMP DI,[BX]”这行工作不正常。

标签: add emu8086


【解决方案1】:

数据被定义为 bytes,但您正在比较 words

改变这个:

MOV DL,0A0H      
CMP DL,[BX]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    相关资源
    最近更新 更多