彙編裡怎麼實現輸入十進位制數並儲存在x,y裡面

2022-03-14 00:20:50 字數 2574 閱讀 6029

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,並依次取出的整數部分,直至結果的小數部分為...