当前位置:首页 » 编程软件 » 汇编程序加法

汇编程序加法

发布时间: 2022-06-28 03:36:41

㈠ 如何用汇编语言编一个计算加法的程序

输入格式必须是A +或 - 或/或* B =
;按Enter年底计算数(0255)

DATAS段

所述DB 20 p的(?)

DB'CHU痤勒','$'

DATAS ENDS

CODES分部

ASSUME <CS:CODES过,DS的人:DATAS START如下:

MOV AX,DATAS

MOV DS,AX

。JMPA

KAISHI:

;回车换行符

MOV DL,0DH MOV的AH,02H INT 21H

MOV DL,0AH

INT 21H

的LEA SI中,X

SUB AX的,AX

SUB的BX,BX

SUB CX,CX

SUB DX,DX

;输入数字

- 答:MOV AH,01H

INT 21H

CMP AL,0DH
> JZ

的CMP AL,30H

JBB

的CMP AL,3AH

JNB F

SUB AL,30H

MOV CH,AL的
> MOV AL,BL

MOV BL,0AH

的MUL BL

ADD AL,CH

MOV BL,AL的

。JMP

;的判断+ - * / =

B:的CMP AL,2BH

JNZ MOV X [SI],BL

INC的SI

MOV CL,0H

AND BL, 0

JMPA

K:的CMP AL,2DH

JNZe

MOV X [SI],BL

INC的SI

MOV CL,01H
title>和BL,0 JMPA

D:的CMP AL,2AH

JNZê

MOV X [SI],BL

INC SI

MOV CL,02H

AND BL,0

JMPA

E:的CMP AL,2FH

JNZ

MOV X [的SI],BL

INC的SI

,03H MOV CL

和BL,0

JMPá

;计算

F:MOV [SI],BL

CMP AL,3DH BR /> JNZ

的LEA SI中,X

MOV的AL中,X [SI]

INC的SI

MOV BL中,X [SI]

CMP CL,0 BR /> JNZ

ADD AL,BL

JMP

G:的CMP CL,01H

JNZ SUB AL,BL

JMP J BR /> H:的CMP CL,02H

JNZ我

AND AH,0

的MUL BL

JMP

我:AND AH,0

CMP CL,03H

DIV BL

;输出

J:和AH,0

的CMP AL,100

JB ER

MOV的BL,100
> DIV BL

MOV CL,AH

ADD AL,30H

MOV DL,AL

MOV AH,02H

INT 21H

MOV AL,CL BR /> ER“:●CMP AL,10个

JB毅

MOV BL,10

AND AH,0

DIV BL

ADD AL,30H

MOV DL,AL

MOV CL,AH

MOV的AH,02H

INT 21H

MOV AL,CL

YI“:ADD AL,30H

MOV DL的, AL

MOV的AH,02H

INT 21H

JMP KAISHI

T:LEA的DX,Y。 MOV AH,09H

INT 21H

JMP KAISHI

L:MOV的AH,4CH的

INT 21H
CODES ENDS ”END START“

㈡ 用汇编语言编一个加法程序

;输入格式必须为A+或-或/或*B=
;按回车结束运算数为(0~255)
DATAS SEGMENT
x db 20 p(?)
y db 'chu cuo le','$'
DATAS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
JMP A
KAISHI:
;回车换行
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
INT 21H
LEA SI,X
SUB AX,AX
SUB BX,BX
SUB CX,CX
SUB DX,DX
;输入数字
A: MOV AH,01H
INT 21H
CMP AL,0DH
JZ L
CMP AL,30H
JB B
CMP AL,3AH
JNB F
SUB AL,30H
MOV CH,AL
MOV AL,BL
MOV BL,0AH
MUL BL
ADD AL,CH
MOV BL,AL
JMP A
;判断+-*/=
B: CMP AL,2BH
JNZ K
MOV X[SI],BL
INC SI
MOV CL,0H
AND BL,0
JMP A
K: CMP AL,2DH
JNZ D
MOV X[SI],BL
INC SI
MOV CL,01H
AND BL,0
JMP A
D: CMP AL,2AH
JNZ E
MOV X[SI],BL
INC SI
MOV CL,02H
AND BL,0
JMP A
E: CMP AL,2FH
JNZ T
MOV X[SI],BL
INC SI
MOV CL,03H
AND BL,0
JMP A
;计算
F: MOV [SI],BL
CMP AL,3DH
JNZ T
LEA SI,X
MOV AL,X[SI]
INC SI
MOV BL,X[SI]
CMP CL,0
JNZ G
ADD AL,BL
JMP J
G: CMP CL,01H
JNZ H
SUB AL,BL
JMP J
H: CMP CL,02H
JNZ I
AND AH,0
MUL BL
JMP J
I: AND AH,0
CMP CL,03H
DIV BL
;输出
J: AND AH,0
CMP AL,100
JB ER
MOV BL,100
DIV BL
MOV CL,AH
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AL,CL
ER: CMP AL,10
JB YI
MOV BL,10
AND AH,0
DIV BL
ADD AL,30H
MOV DL,AL
MOV CL,AH
MOV AH,02H
INT 21H
MOV AL,CL
YI: ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
JMP KAISHI
T: LEA DX,Y
MOV AH,09H
INT 21H
JMP KAISHI
L: MOV AH,4CH
INT 21H
CODES ENDS
END START

㈢ 汇编语言的加法运算

这个与具体的硬件有关系,主要是这个输出到屏幕的话···
把结果的每一位十进制数转换成对应的ascii码,传送(mov)到显存去。
具体过程自己去看汇编语言的书去。
再多我也不知道了,或许我比你更年轻。目前大一。
前面的加法倒是超简单,
mov
ax,9
add
ax,1
然后将ax每位对应的ascii码传送到显存去。

㈣ 汇编语言中 加法(ADD)与带进位加法(ADC)有什么区别

加法(ADD)和带进位加法(ADC)最大的区别就是,ADC除了完成ADD加法指令运算,还必须和加进位标志位相加,才能得到最终计算结果。

加法(ADD)功能是实现两个操作数相加,其结果送至目的操作数,源操作数不变。两个操作数不能同时为存储器寻址方式。

带进位加法(ADC)指令主要用于与ADD指令相结合实现多字节数相加。对操作数的要求也与add指令一样。运算结果对PSW(程序状态字)有影响。

共有四种寻址方式:立即寻址、直接寻址、寄存器寻址和寄存器间接寻址。

(4)汇编程序加法扩展阅读

逻辑运算指令:

这部分指令用于执行算术和逻辑运算,包括加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC;

比较操作指令CMP、乘法指令MUL/IMUL、除法指令DIV/IDIV;

符号扩展指令CBW/CWDE/CDQE、十进制调整指令DAA/DAS/AAA/AAS、逻辑运算NOT/AND/OR/XOR/TEST等。

㈤ 用汇编语言怎么实现两个数的加法

给你个五位数相加的程序吧 如果有具体要求请做相应修改
data segment
in_msg1 db "please input the first number(5 bit) :","$" ;设置输入提示信息1
in_dat1 db 6,0,6 p(0) ;设置输入缓冲区1
in_msg2 db 0ah,0dh,"please input the second number(5 bit):","$" ;设置输入提示信息2
in_dat2 db 6,0,6 p(0) ;设置输入缓冲区2
out_msg db 0ah,0dh,"the sum is:",20h ;设置输出提示信息
out_dat db 6 p(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

㈥ 简单的汇编加法程序

; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code

W dw 378
X dw 456
Z dw 269

Start: push cs
pop ds ;使数据段与代码段同段

mov ax,X
sub Z,ax ;Z-X→Z
mov ax,W
add Z,ax

Exit_Proc: mov ah,4ch ;结束程序
int 21h

Code ENDS
END Start ;编译到此结束

㈦ 汇编语言中加法程序(初学汇编,希望有程序说明)

data segment
a db 1
b db 2
c db 3
d db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
cmp a,0
jnz next1
cmp b,0
jnz next1
cmp c,0
jnz next1
mov al,a
add al,b
add al,c
mov d,al
jmp tj
next1:
mov a,0
mov b,0
mov c,0
tj:
mov ah,4ch
int 21h
code ends
end start
请参考

㈧ 汇编加法程序

;经验证,下式结果正确
;S=86H*34H-22H=1B38H-22H=1B16H
code segment
assume cs:code,ds:code
org 100h ;COM格式
start:
push cs
pop ds
mov ax,0e53h ;显示'S'
int 10h
mov al,'=';显示'='
int 10h
call @IN
mov dl,al
mov bl,2ah;"*"
call show ;显示'H*'
call @IN
mov dh,al
mov bl,2dh ;"-"
call show ;显示'H-'
call @IN
mov ah,0
mov bp,ax
mov bl,3dh ;"="
call show ;显示'H='
mov ah,0
mov al,dl ;AL←86H
mov bl,dh ;BL←34H
mul bl ;86H*34H
;未考虑不够减的情况
sub ax,bp ;AX←AX-22H
mov cx,4
mov dx,ax
next:
push cx
mov cl,4
rol dx,cl
mov ax,dx
and al,0fh ;取出一位
or al,30h ;二进制转换为Ascii
cmp al,'9';比9小直接显示
jb T2
add al,7 ;是A`F的,加7校正
T2:
mov ah,0eh ;显示Ascii
int 10h
pop cx
loop next ;下一位
mov ax,0e48h ;'H'
int 10h
mov ah,0
int 16h ;暂停
mov ah,4ch
int 21h ;结束

@IN:;可输入两位十六进制数
xor bx,bx ;BX←0
mov cx,4
@1:call input
mov bl,al
shl bl,cl ;BL←BL*10H
call input
add al,bl ;AL←两位十六进制数
ret

input: ;仅允许输入并显示0-9和A-F
mov ah,0
int 16h ;无回显键盘输入
cmp al,'0';十六进制数 0-F
jb input ;为有效输入
cmp al,'9'
jbe Q1
and al,0dfh ;大小写,同转为大写
cmp al,'A';"A(a)"
jb input
cmp al,'F';"F(f)"
ja input
Q1:mov ah,0eh
int 10h ;显示有效输入
sub al,30h ;0-9之间,Ascii转换为二进制
cmp al,9
jbe Q3
sub al,7
Q3:ret

show:
mov ax,0e48h ;"H"
int 10h
mov al,bl
int 10h
ret

code ends
end start

㈨ 汇编语言 加法

这个与具体的硬件有关系,主要是这个输出到屏幕的话··· 把结果的每一位十进制数转换成对应的ASCII码,传送(mov)到显存去。 具体过程自己去看汇编语言的书去。 再多我也不知道了,或许我比你更年轻。目前大一。 前面的加法倒是超简单,
mov ax,9
add ax,1
然后将ax每位对应的ASCII码传送到显存去。

㈩ 用汇编实现一个加法的exe程序

过程如下:
1、编辑:用编辑软件(EDIT.EXE或记事本)形成源程序(.ASM),如:LX.ASM;
2、汇编:用汇编程序(MASM.EXE)对源程序进行汇编,形成目标文件(.OBJ),格式如下:MASM
LX.ASM;
3、连接:用连接程序(LINK.EXE)对目标程序进行连接,形成可执行文件(.EXE),格式如下:LINK
LX.OBJ;
4、执行:如果结果在屏幕在显示,则直接执行可执行文件。
5、调试:用调试程序(DEBUG.EXE)对可执行文件进行调试,格式如下:DEBUG
LX.EXE

热点内容
sql数据库数据路径 发布:2024-05-17 10:00:25 浏览:131
ftp服务器程序 发布:2024-05-17 10:00:21 浏览:676
php中的函数 发布:2024-05-17 09:53:34 浏览:940
优质网站为什么用ip服务器 发布:2024-05-17 09:43:34 浏览:792
安卓机图片存在哪里 发布:2024-05-17 09:42:54 浏览:61
ip地址怎么查看服务器上的文件 发布:2024-05-17 09:29:51 浏览:979
轱轮算法 发布:2024-05-17 09:29:10 浏览:95
安卓手机锁屏密码一般怎么画 发布:2024-05-17 09:29:05 浏览:347
堆栈是按组织的存储区域 发布:2024-05-17 09:29:02 浏览:695
sqllinkserver 发布:2024-05-17 09:19:35 浏览:458