2013-12-14 60 views
0

我有這段代碼來獲得我想要的結果,但是我無法顯示它。我是TASM的新成員,所以我不知道如何使用。我查了一些教程來顯示結果,但沒有發現。請幫忙。在TASM中減去一個向量的元素後顯示結果

 
.model small 
.286 
.stack 100h 

.data 

vector db 8,9,5,4,5,6,7  
n  db 7    ; dimensiunea vectorului 
scadere db ' ','$'  ; suma elementelor 

.code 
    mov AX,@data 
    mov DS,AX 

    xor SI,SI 
    xor CX,CX   ; ne asiguram ca CX are valoarea 0 

    mov CL,n    ; copiem in CL dimensiunea vectorului 

repeat:     ; definim eticheta 
    mov AL,vector[SI] 
    sub scadere,AL 
    inc SI  ; marim valoarea din SI cu 1 pentru a trece la elementul urmator 
    loop repeat ; salt la eticheta cat timp CX diferit de 0 

    mov AX,4c00h 
    int 21h 

end 

回答

0

您不輸出結果。

嘗試

.model small 
.286 
.stack 100h 

.data 

vector db 8,9,5,4,5,6,7  
n  db 7    ; dimensiunea vectorului 
scadere db 'z',13,10,'$'  ; suma elementelor+CR+LF 

.code 
    mov AX,@data 
    mov DS,AX 

    xor SI,SI 
    xor CX,CX   ; ne asiguram ca CX are valoarea 0 

    mov CL,n    ; copiem in CL dimensiunea vectorului 

repeat:     ; definim eticheta 
    mov AL,vector[SI] 
    sub scadere,AL 
    inc SI  ; marim valoarea din SI cu 1 pentru a trece la elementul urmator 
    MOV DX,OFFSET SCADERE  ;^message 
    MOV AH,9    ;Dos function 9 = output until '$' 
    INT 21H    ;execute DOS function 
    loop repeat ; salt la eticheta cat timp CX diferit de 0 

    MOV DX,OFFSET SCADERE  ;^message 
    MOV AH,9    ;Dos function 9 = output until '$' 
    INT 21H    ;execute DOS function 
    mov AX,4c00h 
    int 21h 

end 

這應該給你帶路。

有你應該顯示

'Z'(7A)的DOS functions here.

我已經改變了scadere因爲你減去由此開始在'z'一個有用的清單 - 8 = 'r'(72)
'R'(72) - 9 = 'i'(69)
'I'(69) - 5 = 'd'(64)
'd'(64) - 4 = ''(60)...

將13,10加入scadere應該產生一個換行符。

+0

謝謝你的幫助。我測試了您重寫的代碼,但它顯示的是字符,而不是數字。我該如何解決這個問題? –