1樓:白雲深處是我家
;示例程式如下
;函式readint讀取16位長的整數
;呼叫readint之前,將儲存讀入數值的變數地址賦值給si;本程式沒有對輸入非數字字元時的處理
data segment
x dw 0
y dw 0
data ends
code segment
assume cs:code, ds:datastart:
mov ax,data
mov ds,ax
lea si,x
call readint
lea si,y
call readint
mov ah,4ch
int 21h
;si-x's address
;read a dw integer
readint proc near
mov bx,10
l1:mov ah,1
int 21h
cmp al,0dh
jmp endread
and al,0fh
mov ah,0
xchg [si],ax
mul bl
xchg [si],ax
add [si],ax
jmp l1
endread:
retreadint endp
code ends
end start
2樓:湯旺河邊
因為答題,經常涉及十進位制數的輸入、輸出問題,我就分別編了一個專門用於這個用途的子程式。用來解決樓主的問題很是妥當,不知樓主可否需要。
3樓:做而論道
計算機,每次只能完成一個任務。
也就是說,每次,只能輸入一個數。
輸入一個數之後,存入 x。
再次輸入數,這次存入 y。
這就行了。
這麼簡單的事,為什麼還要提問?
4樓:鯤鵬展翅
data segment
x dw ?
y dw ?
data ends
code segment
main proc far
assume cs:code,ds:datastart:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
mov cx,2;共處理兩個數
lea si,x;十進位制數存放單元的首地址送sirotate:
mov bx, 0
newchar: mov ah, 1
int 21h
cmp al,20h;以空格作為每個數的結束標誌jz next
sub al, 30h
cmp al,0
jl newchar;不是有效的0-9則重新輸入cmp al,9
jg newchar
cbwxchg ax, bx
mov dx, 10 ;cx已經作為迴圈次數2,就換個dx吧mul dx
xchg ax, bx
add bx, ax
jmp newchar
next:
mov [si],bx
lea si,y ;下一個數存入y中,如果不僅是兩個數,則此語句可換成 add si,2,讓si指向下一數應該存放的記憶體地址
loop rotate
retmain endp
code ends
end start
彙編程式:從鍵盤輸入兩個十進位制數然後把這兩個數相加,並將結果顯示在螢幕上
5樓:
data segment
data ends
code segment
assume cs:code,ds:datastart:mov ax,data
mov ds,ax
mov ah,1
int 21h
sub al,30h
mov bl,al
mov ah,2
mov dl,13
int 21h
mov ah,2
mov dl,10
int 21h
mov ah,1
int 21h
sub al,30h
add al,bl
aampush ax
pop bx
mov ah,2
mov dl,13
int 21h
mov ah,2
mov dl,10
int 21h
mov ah,2
mov dl,bh
add dl,30h
int 21h
mov ah,2
mov dl,bl
add dl,30h
int 21h
mov ah,4ch
int 21h
code ends
end start
如何使用組合語言實現多位十進位制數相加
多少位十進位制數相加?用組合語言 編一程式把鍵入的十六進位制數轉化 成十進位制數。50 用組合語言如何實現 3個 16位二進位制數相加 你這是兩個三位元組的二進位制數,即24位的二進位制數,不叫3個16位二進位制數,只是兩個數相加。你的程式這麼寫,每一個數是先存放高位,後放低位。如被加數放20h,先...
求十進位制數58 65的二進位制數,十進位制數58的二進位制數是多少?
首先,十進位制整數部分與小數部分的轉換時不同的。1 對於整數部分來說,採用 除2取餘,逆序排列 法。具體做法是 用2整除十進位制整數,可以得到一個商和餘數 再用2去除商,又會得到一個商和餘數,如此進行,直到商為0時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有...
十進位制數59轉換成二進位制數,十進位制數59用二進位制表示是多少?
十進位制59化為二進位制是111011 十進位制 二進位制 對於整數部分,用被除數反覆除以2,除第一次外,每次除以2均取前一次商的整數部分作被除數並依次記下每次的餘數。另外,所得到的商的最後一位餘數是所求二進位制數的最高位。對於小數部分,採用連續乘以基數2,並依次取出的整數部分,直至結果的小數部分為...