『壹』 編寫一完整程序實現多位元組(10個以上位元組型數據)加法運算,並將加數和結果顯示在計算機屏幕上。
以16進制數的形式顯示還好說,若是要以10進制數的形式顯示加數和結果,那是很有難度的!
『貳』 c語言十進制加法
一般都是10進製表示的,而實際的計算是以2進制進行的,不過這是編譯器的事,不用關心。如需以其他形式輸出,只需要轉換格式
『叄』 89c52 匯編語言 如何將一個3位元組的大數轉換為十進制並顯示出來
幫你將難的部分做出來吧,顯示部分你自己搞定
將三個位元組賦值給R2R3R4(R2為高位),返回值在R0開始的NCNT個地址中,因此調用前需如此處理:
NCNT EQU 20H
....................
MOV R2,#L
MOV R3,#M
MOV R4,#N
MOV R0,#30H
...........
IBTD31 :
CLR A
MOV NCNT,A
IBD311 :
MOV R7,#0AH
LCALL NDIV31
MOV A,R7
MOV @R0,A
INC R0
INC NCNT
MOV A,R2
ORL A,R3
ORL A,R4
JNZ IBD311
MOV A,R0
CLR C
SUBB A,NCNT
MOV R0,A
RET
NDIV31 :
MOV A,R2
MOV B,R7
DIV AB
PUSH A
MOV R2,B
MOV B,#10H
NDV311 :
CLR C
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV F0,C
CLR C
SUBB A,R7
JB F0,NDV312
JC NDV313
NDV312 :
MOV R2,A
INC R4
NDV313 :
DJNZ B,NDV311
POP A
CLR OV
JZ NDV314
SETB OV
NDV314 :
XCH A,R2
MOV R7,A
RET
『肆』 單片機 單位元組無符號十進制加法 程序
這是最簡單的操作啊。你是要問什麼問題?
加完了,用DAA就可以了。
MOV A,#34
ADD A,#12 ; 34+12
DA A ; 調整為BCD碼
『伍』 匯編多位元組十進制加法
data1 segment
s db 10,?,11 p ('$')
s1 db 1,10,100
s2 db 0Dh,0Ah,'$'
s3 db 'error','$'
ddec dw 10000,1000,100,10,1
dsc db 0,0,0,0,0dh,0ah,'$'
data1 ends
code segment
assume cs:code,ds:data1
start:mov ax,data1
mov ds,ax
call lp
call md
mov cx,5 ;把累加的結果以十進制輸出
lea si,ddec
lea di,dsc
conv: mov bl,0
rrr: sub ax,[si]
jc next
inc bl
jmp rrr
next: add ax,[si]
or bl,30h
mov [di],bl
inc si
inc si
inc di
loop conv
lea dx,s2
mov ah,09h
int 21
lea dx,dsc
mov ah,9h
int 21h
dm1: mov ah,4ch
int 21h
lp: lea dx,s ;把輸入的數據轉換成二進制存取在DX中
mov ah,0ah
int 21h
mov dx,0 ;保存數據的結果
mov bx,0
lea si,s
lop: cmp byte ptr[si+2],0Dh
jz lop1
inc bx ;BX計數輸入的長度
inc si
jmp lop
lop1: mov cx,bx
inc bx
mov si,bx
mov ax,0
lea di,s1
lop2: mov al,[si]
sub al,30h
mul byte ptr[di]
inc di
add dx,ax
dec si
loop lop2
ret
md: mov ax,0 ;求累加和存放在ax中
cmp dx,100
jbe lop3
jmp err
lop3: add ax,dx
dec dx
jz exit
jmp lop3
exit: ret
err: lea dx,s3
mov ah,09h
int 21h
jmp dm1
code ends
end start
不懂的再來問
『陸』 怎樣把三個位元組數據轉化為十進制數據
常用位元組為二進制的數,設數字為xyz,方法是x×10的二次方+y×10的一次方+z×10的零次方的出來的數就是是十進制的!
『柒』 單位元組十進制bcd碼加法程序,被加數在h中,加數在h中,要求和放在h中
1、壓縮BCD碼(一個位元組存兩位8421BCD碼對應的十進制數)加法程序:
MOV AL,12H
MOV BL,34H
ADD AL,BL
DAA
2、非壓縮BCD碼(一個位元組存一位8421BCD碼對應的十進制數)加法程序:
MOV AL,02H
MOV BL,04H
ADD AL,BL
AAA
『捌』 單片機無符號十進制加法
;51單片機程序如下
CLR C
LOOP:
MOV A, @R0
ADDC A, @R1
DA A
MOV @R0, A
INC R0
INC R1
DJNZ R7, LOOP
END
『玖』 求!一道關於單片機10位十進制加法子程序的編程題,幫幫忙啊
;
ORG 0000H
MOV 24H, #12H
MOV 23H, #23H
MOV 22H, #34H
MOV 21H, #45H
MOV 20H, #56H ;10位十進制加數:1223344556。
MOV 29H, #33H
MOV 28H, #44H
MOV 27H, #55H
MOV 26H, #66H
MOV 25H, #77H ;10位十進制被加數:3344556677。
MOV R0, #20H
MOV R1, #25H
MOV R2, #5
CLR C
LOOP:
MOV A, @R0
ADDC A, @R1
DA A
MOV @R0, A
INC R0
INC R1
DJNZ R2, LOOP
SJMP $
END