1樓:網友
彙編啊,忘得差不多了。
我給你個建議把。
我記得當初寫程式時,一般這樣:ax,不是由高位和低位嗎?
向左移位,把高位部分放到輸出的那個暫存器,忘了。
反正就是這個思想,分別順序的輸出高位和低位。
哎。慚愧,忘乾淨了。
輸入的十進位?存的時候是以二進位存放的,也就是說只有01,對照ascii碼看看。
剛才看看書,輸出的暫存器dx的低位dl,你可以依次把ax的ah和al放到dl,然後輸出。。
分兩次輸出唄,也就多寫兩三行**。
如果是十位數,最好就用迴圈,不過35也就兩位數,分兩次就ok了。
2樓:網友
兩位十進位數的輸出方法:
將要輸出的資料除以10,除法的商既為十位,餘數為個位。將。
十、個位順序輸出即可。
如欲輸出35:
mov ax,35
mov bl,10
div bl;餘數在ah,商在al
mov dx,ax
add dx,3030h;轉化成十\個位對應的ascii碼。
mov ah,2
int 21h
mov dl,dh
mov ah,2
int 21h
用組合語言如何將乙個ax中的數輸出
3樓:永恆
以下兩個子程式以10進位形式輸出ax暫存器的值:
******************************==dspaxs proc near ; 輸出帶符號的ax
push ax
test ax,8000h
jns @dspaxs1
push ax
push dx
mov ah,2
mov dl,'-'
int 21h
pop dx
pop ax
neg ax
dspaxs1:
call dspax
pop ax
retdspaxs endp
******************************dspax proc near ; 輸出無符號的ax
push ax
push bx
push cx
push dx
pushfxor cx,cx
mov bx,10
dspax1:
xor dx,dx
div bx
inc cx
or dx,30h
push dx
cmp ax,0
jne @dspax1
mov ah,2
dispax2:
pop dx
int 21h
loop @dispax2
mov dl,32
int 21h
popfpop dx
pop cx
pop bx
pop ax
retdspax endp
4樓:幸運者二號
暫存器根據情況儲存。
a0 db '0123456789abcdef';這句在資料段中,;在**段中呼叫print即可。
即 用call print
print:
push cx
push di
mov ch,4
mov cl,4
mov bx,ax
s1:rol bx,cl
mov al,bl
and ax,0fh
mov dl,a0[di]
mov ah,2
int 21h
dec ch
jnz s1
mov dl,32
mov ah,2
int 21h
pop pi
pop cxret
5樓:藏風之處
這個問題非常簡單,但是解釋起來很困難。
根據呼叫函式的不同提供的引數型別也不同。
如果是指標則需要把ax的資料儲存到指標指向的記憶體如果是資料則直接把ax壓入堆疊。
根據輸出呼叫的不同而不同。
我想你因該問如何輸出暫存器值。
其實很簡單,把暫存器值存入記憶體然後輸出。
或是直接把暫存器數值push到堆疊然後輸出參考一下輸出的函式。
彙編輸出數字
6樓:做而論道
你先把bx內容傳送到ax,然後再呼叫下列過程即可。
--printax proc ;以10進位輸出ax中的無符號整數。
mov bx, 10 ;按10進位輸出。
or ax, ax
jz _0_
loop_p:
xor dx, dx
div bx
mov cx, ax ;商。
or cx, dx
jz _e_ ;若商與餘數都為0則結束遞迴。
push dx ;儲存dx中的餘數。
call loop_p ;遞迴。
pop dx ;恢復餘數。
add dl, '0' ;變成ascii碼。
jmp _1_
0_: mov dl, '0' ;是0則直接輸出。
1_: mov ah, 2
int 21h
e_: ret
printax endp
為什麼輸出是兩位數
7樓:如約而至
%3d表示輸出的長度為3,當小於3時,左端補0,大於時遠樣輸出。
彙編中怎樣輸出乙個數
8樓:中原小壞蛋
運算的時候你可以用56除以10來一位一位的輸出,多位數的時候以此類推或者把他當字元,直接輸出字元。下面是輸出字元的。
datas segment
x db '56$'
datas ends
codes segment
assume cs:codes,ds:datasstart:
mov ax,datas
mov ds,ax
mov dx,offset x
mov ah,09h
int 21h
mov ah,4ch
int 21h
codes ends
end start
兩位數除以兩位數?求豎式的,兩位數除以兩位數?求豎式的?
商有小數,被除數小數點後面加零 例如2 11 0.181818.0.181.11 2.00000.11 9088 20.列豎式的方法 1 先在上面一行寫第一個加數。如果兩加數位數不一樣,就先寫位數多的數 2 再在下面一行寫第二個加數。如果兩加數位數不一樣,就寫位數少的數。第二個數要和第一個數的數位對...
筆算兩位數加兩位數時要注意數位要從
筆算兩位數加兩位數時要注意 相同 數位要 對齊 從 個位加起 要注意進位bai 加法是基本的四du則運算之一,它 zhi是指將兩個dao或者兩個以版上的數 量合起來,權變成一個數 量的計算。表達加法的符號為加號 進行加法時以加號將各項連線起來。在算術中,已經設計了涉及分數和負數的加法規則。加法有幾個...
兩位數,個位數字是n,十位數字是m,這個兩位數可表示為
一個兩位數,個位數字是n,十位數字是m,這個數是 10m n 故答案為 10m n 一個兩位數的十位數字為a,個位上的數字比十位上的大3,這個數是多少?個位上的數字比十位上的大3 所以個位是a 3 十位上的單位是10 所以十位數字的a代表10a 個位是a 3 10a a 3 11a 3 答 這個數是...