怎麼用組合語言編寫程式,統計字串的長度並輸出

時間 2021-08-14 23:02:28

1樓:允天曼

ho彙編?? 不是很懂.用字串.length()看是不是能獲得長度?int i =字串.indexof($)獲得位置字串.substring(i,"");

2樓:匿名使用者

組合語言編語言也分好多種的,你說的是哪一種語言

3樓:匿名使用者

data segment

msg1 db 'length:','$'

shex db '0123456789abcdef$'

maxlen equ 200h

data ends

code segment ;**段定義assume cs:code,ds:datastart:

mov ax,data

mov ds,ax

;初始化需要的暫存器

mov ax,0

mov bl,24h

mov di, offset msg1

;迴圈比較字串中的每個字元,並把統計值放在ax中myloop:

cmp byte ptr[di], bl

jz exit

inc di

inc ax

jmp myloop

exit:

push ax

;顯示提示內容

mov dx,offset msg1

mov ah,9h

int 21h

pop ax

call printlen

mov ah,4ch

int 21h

;列印出長度,長度儲存在ax裡

printlen proc near

mov cx,4

printloop:

rol ax,1

rol ax,1

rol ax,1

rol ax,1

push ax

mov dl,al

and dl,0fh

mov bx, offset shex

add bl,dl

mov dl, byte ptr [bx]mov ah,2

int 21h

pop ax

loop printloop

retprintlen endp

code ends

end start

組合語言怎麼實現一個字串的輸入與輸出

4樓:匿名使用者

組合語言實現一個字串的輸入與輸出,可以呼叫dos功能中斷完成。

示例程式如下:

;組合語言輸入一串字串,可以呼叫dos功能中斷int 21h的06h功能。

;程式功能:輸入一串字元,以回車符結束,輸入字串最大長度200字元;

; 輸入結束在下一行輸出此字串。

data segment

str db 201 dup (0dh)

data ends

code segment

assume cs:code,ds:datamain proc far

start:

mov ax,data

mov ds,ax

lea si,str

mov cx,200

inpstr: mov ah,06h

int 21h

jnz inpstr;無字元可讀

mov [si],a1

inc si

xor al,0dh

jz endinp

loop inpstr

endinp: mov al,0dh

mov [si],a1

mov dl,0ah;回車換行

mov ah,02h

int 21h

mov dl,0dh

mov ah,02h

int 21h

lea si,str;輸出字串

output: mov dl,[si]

cmp dl,0dh

jz endout;已到字串尾

mov ah,02h

int 21h

inc si

jmp output

endout: mov ah,4chint 21h

retmain endp

code ends

end start

5樓:志強強吧

輸入:data segment

buff db 100

db ?

db 100 dup(?)

data ends

mov ax,data

mov ds,ax

lea dx,buff

mov ah,0ah

int 21h

輸出:hello

mes db 'hello $'

mov ax,data

mov ds,ax

lea dx,mes

mov ah,9

int 21h

6樓:灬**灬銘

用21號中斷的10號功能輸入。。9號功能輸出。。

7樓:專業保證

mov ax 0ah

int 21h

mov ax 09h

int 21h

用組合語言編寫程式段,實現從鍵盤輸入一位10進位制數後累加

code segment assume cs code org 100h start jmp bbb lfcr db 13,10,bbb push cs pop ds call inputnum mov ah,9 lea dx,lfcr int 21h lea si,array mov ch,0 m...

用8086組合語言編寫程式,接受從鍵盤上輸入的兩位十進位制數字,這個數經過BCD碼處理,以十六進位制顯示出

做而論道 disp str macro x 巨集定義.mov dx,offset x mov ah,9 int 21h endm data segment 資料段.msg1 db 13,10,please input msg3 db 13,10,the hex is x dw 存放新輸入資料.dat...

用組合語言編寫時鐘程式,能顯示時分秒的,還要有秒錶就是計

雪蕻軒 stack1 segment stack dw 200 dup stack1 ends data segment space db 1000 dup pattern db 6 dup 0c9h,26 dup 0cdh 0bbh,6 dup db 6 dup 0bah,26 dup 20h 0...