1樓:匿名使用者
已經改過了,[si]是暫存器間接定址,但是無變數名的暫存器變數定址屬於無型別量,後面的立即數也是無型別量,所以不符合語法規則,使用ptr偽指令即可修改。。
還有x屬於位元組型變數,所以不要和8000h比,和80h比就夠了,你不就是想驗證一下零的最高位是一還是零嗎?
data segment
x db -9,4,0,0,'$'
p_count db 0
z_count db 0
n_count db 0
y equ $-x
data ends
sata segment stack
dw 100h dup (?)
sata ends
code segment 'code'
assume cs:code,ds:data,ss:satastart:mov ax,data
mov ds,ax
mov ax,sata
mov ss,ax
xor ax,ax
xor dx,dx
mov cx,y
lea si,x
sub si,1
test1:add si,1
cmp byte ptr [si],0
jz nz
add ah,1
jmp ok
nz:test byte ptr [si],80hjz z
add al,1
jmp ok
z:add dl,1
jmp ok
ok:dec cx
cmp cx,0
jnz test1
mov p_count,al
mov z_count,ah
mov n_count,dl
mov ah,4ch
int 21h
code ends
end start
2樓:匿名使用者
error a2070: invalid instruction operands
需要使用byte ptr 之類的限定來指明運算元的大小。
試編寫組合語言源程式,將鍵盤輸入的ASCII碼轉換為二進位制
將鍵盤輸入的ascii碼轉換為二進位制。直接回車程式結束。檔案格式 code segment main proc far assume cs code,ds code 100h start push cs pop ds nn1 mov ah,02 mov dl,0dh int 21h mov dl,...
微控制器組合語言程式,我想寫迴圈點亮的LED,然後用外部中
迴圈點亮led燈,也就是流水燈效果的控制,可以用定時器來控制,這樣做相對 量較少而時間比較精確,外部中斷0接以按鍵,可以控制動態效果的啟停。程式如下 org 0000h ljmp main org 0003h ljmp ext0 外部中斷0,控制流水燈啟停org 000bh ljmp t0isr 定...
編寫求陣列中最大數的子程式,組合語言哦!謝謝
以下子程式假設默陣列認放在ds段中,其中的資料為dw型。呼叫子程式前的引數設定 bx中存放陣列的起始偏移地址,cx中存放陣列的長度。呼叫子程式後,陣列的最大值放在cx中。array max push ax mov ax,bx 把陣列第一個數放到ax中 find cmp ax,bx 把ax中的數與陣列...