組合語言程式設計

2023-01-14 07:15:24 字數 1582 閱讀 8181

1樓:匿名使用者

data segment

str1 db 'this is a string.$'

a_cnt db 0

data ends

code segment

assume cs:code,ds:datastart:

mov ax,data

mov ds,ax

lea si,str1

l_again:

mov al,'a'

cmp al,[si]

jne @f

inc byte ptr a_cnt

inc si

jmp l_again

@@:mov al,'$'

cmp al,[si]

je done

inc si

jmp l_again

done:

mov ax,4c00h

int 21h

code ends

end start

2樓:

看看行不行

data segment

alp db 'aajaaaaaaaaaaafdsfgdgaa12aaa.,.klhk3aaaafaakla$'

outs db 0

data ends

writebcd macro x ;假設x=36h,則在螢幕上輸出為36

push ax ;注 x中的數必須為某數的bcd碼

push cx

push dx

mov al,x

add al,0

daamov dl,al

mov dh,al

mov cl,4

shr dh,cl

and dl,0fh

add dx,3030h

xchg dl,dh

mov ah,2

int 21h

mov dl,dh

mov ah,2

int 21h

pop dx

pop cx

pop ax

endm

code segment

assume cs:code,ds:datastart: mov ax,data

mov ds,ax

lea si,alp

mov cx,0

go:cmp byte ptr [si],'$'

jz exitt

cmp byte ptr [si],'a'

jz next

cmp byte ptr [si],'a'

jz next

inc si

jmp go

next: inc cx

inc si

mov ax,cx

daamov cx,ax

jmp go

exitt: writebcd cl

mov [outs],cl

mov ah,4ch

int 21h

code ends

end start

組合語言跑馬燈程式設計,用組合語言編寫跑馬燈程式

迴圈點亮你只要用位移指令就行啦!假如是p1口,你只要先給他賦予一個初值00000001,假如是高電平點亮,那這是就只有一盞燈亮,迴圈左移就行啦!每次迴圈一次,都呼叫一下延時這就可以按自己要求設定延時的時間啦!其實思路都挺簡單的!不過你要是對微控制器一點都不瞭解,那隻好叫別人寫好給你算了!你直接複製下...

微控制器組合語言的程式設計問題

首先教你如何理解jnb和jb,jnb就是jump not bit,這樣不好理解,解釋一下就明白了 jump表示跳轉,not表示0,bit表示該位。它實際是條件判斷語句,意思是 如果該為為0則跳轉,否則繼續下一條。例 jnb p1.1,mark 如果p1.1位為零則跳轉到mark標誌指向的指令,否則繼...

組合語言程式設計高起專求大神幫助

35.單選題 mov al,12h add al,0ffh 上述兩條指令執行後,cf和of的值為內 本題2.0分 a cf 1 of 0 36.單選題 在組合語言程 容序設計中,偽指令offset的含義是回送變數或標號的 本題2.0分 b 偏移地址值 37.單選題 在串操作指令前使用重複字首指令re...