我在簡單的彙編程序中遇到了麻煩。我不知道我爲什麼會發生,但是有問題。 任務是:在彙編器的兩個陣列(鴯鶓8086)的計算標量積 這是我的代碼彙編程序任務:兩個數組的標量積
; multi-segment executable file template.
數據段 ;在這裏添加您的數據! n1 db 1,2,3 n2 db 4,5,6 i db? j db?
k dw ?
pkey db "press any key...$"
結束
堆棧段 DW 128 DUP(0) 結束
代碼段 開始: ;集段寄存器: MOV AX,數據 MOV DS,斧 MOV ES,斧
mov al,00h
mov ah,02h
mov ch,00h
mov cl,03h
mov bx,offset n1
ciklus:
mov dl,[bx]
;add dl,30h
mov j,0d
add j,dl
int 21h
mov al,j
mov ah,0h
inc bx
inc bx
inc bx
mov dl,[bx]
;add dl,30h
mov i,0d
add i,dl
mul i
mov k,ax
mov al,00h
mov ah,02h
int 21h
dec bx
dec bx
dec bx
inc bx
loop ciklus
lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx
; wait for any key....
mov ah, 1
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h
結束
端開始;設置入口點並停止彙編程序。
所以當我一步一步地運行程序時,我在ax中看到奇怪的值。我想 1x4 2x5 3x6 => 4 10 18保存在某個變量中並打印到屏幕上。
如果有人能幫助我,我將不勝感激。 P.S這是我在彙編程序編程的小菜,所以不要生我的愚蠢問題。
您是否正在使用調試器來查看出錯和何時出現? – 2012-03-09 23:44:59
是的。當我運行一步一步我看到手術後多我(結果應該走在斧頭)和斧是31h * 34 * = 09F4 [2548 dec],結果應該是4(1 * 4 = 4)...我不'不知道我錯在哪裏。 – user1260255 2012-03-10 10:49:03