彙編顯示字串的程式,彙編顯示一個字串的程式

2022-01-03 14:01:40 字數 5983 閱讀 1481

1樓:邶玉蘭桑甲

data

segment

strdb

'hello!'

lenequ

$-str

;len為str所指字串長度

data

ends

code

segment

assume

cs:code,

ds:data

start:

movax,

data

movds,

axmov

cx,len

;cx儲存迴圈次數

leasi,

str;

字串首地址送si

display:

movdl,

[si]

;依次取str所指字串中單個字元送dl

call

disp

;呼叫顯示字元子程式

incsi

;字串偏移地址加1

loop

display

movah,

4chint

21h;顯示字元子程式,入口引數在dl

disp

proc

push

axmov

ah,02h

int21h

popax

retdisp

endp

code

ends

endstart

彙編顯示一個字串的程式?

2樓:匿名使用者

org 0100h ; 告訴編譯器程式載入到 0100h處mov ax, cs

mov ds, ax

mov es, ax

call dispstr ; 呼叫顯示字串例程jmp $ ; 無限迴圈

dispstr:

mov ax, bootmessage

mov bp, ax ; es:bp = 串地址mov cx, 16 ; cx = 串長度mov ax, 01301h ; ah = 13, al = 01hmov bx, 000ch ; 頁號為 0(bh = 0) 黑底紅字(bl = 0ch,高亮)

mov dl, 0

int 10h ; 10h 號中斷

retbootmessage: db "hello world!"

times 510-($-$$) db 0 ; 填充剩下的空間,使生成的二進位制**恰好為

; 512位元組

dw 0xaa55 ; 結束標誌

3樓:匿名使用者

怎麼也不弄點懸賞分 啊,呵呵

輸入後回車顯示大寫字母

data segment

a db 'enter the string:$'

buf db 100

len db ?

str db 100 dup(?)

zs db 0dh,0ah

we db 100 dup('$')

data ends

code segment

main proc far

assume cs:code,ds:datastart: push ds

mov ax,0

push ax

mov ax,data

mov ds,ax

lea dx,a

mov ah,9h

int 21h

lea dx,buf

mov ah,0ah

int 21h

mov cl,len

mov ch,0

lea bx,str

lea si,we

cont: mov al,0

mov al,[bx]

cmp al,'a'

jb next

cmp al,'z'

ja next

sub al,32

mov [si],al

jmp next2

next: mov [si],al

jmp next2

next2: inc bx

inc si

loop cont

mov dx,0

lea dx,zs

mov ah,9h

int 21h

retmain endp

code ends

end start

4樓:匿名使用者

data segment

str db 'hello!'

len equ $-str ; len為str所指字串長度data ends

code segment

assume cs:code, ds:datastart:

mov ax, data

mov ds, ax

mov cx, len ; cx儲存迴圈次數lea si, str ; 字串首地址送sidisplay:

mov dl, [si] ; 依次取str所指字串中單個字元送dlcall disp ; 呼叫顯示字元子程式inc si ; 字串偏移地址加1

loop display

mov ah, 4ch

int 21h

;顯示字元子程式,入口引數在dl

disp proc

push ax

mov ah,02h

int 21h

pop ax

retdisp endp

code ends

end start

5樓:匿名使用者

在什麼環境中實現啊!

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

6樓:匿名使用者

組合語言實現一個字串的輸入與輸出,可以呼叫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

7樓:志強強吧

輸入: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

8樓:灬**灬銘

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

9樓:專業保證

mov ax 0ah

int 21h

mov ax 09h

int 21h

用組合語言輸出一個字串,在螢幕的下一行顯示出來

10樓:遊子

string db 'what are you doing?','$'

mov dl,0dh

mov ah,2

int 21h

mov dl,0ah

mov ah,2

int 21h ;前面的是輸出回車換行符(2號功能呼叫)

mov dx,offset string

mov ah,9

int 21h ;輸入字串(9號功能呼叫)

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

11樓:允天曼

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

12樓:匿名使用者

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

13樓:匿名使用者

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

彙編顯示字串的程式,彙編顯示一個字串的程式

org 0100h 告訴編譯器程式載入到 0100h處mov ax,cs mov ds,ax mov es,ax call dispstr 呼叫顯示字串例程jmp 無限迴圈 dispstr mov ax,bootmessage mov bp,ax es bp 串地址mov cx,16 cx 串長度m...

編寫一下程式從鍵盤上輸入字串,統計字串中英文字母的個數及數字的個數

不用那麼複雜,漢字倆位元組,英文一個位元組,計算下關係就可以了 public class test public class test else if value 65 value 90 value 97 value 122 else system.out.println 數字個數 num 字母個數...

組合語言 底下的程式顯示cmp,0和test不正確為什麼啊這不是間接定址嗎

已經改過了,si 是暫存器間接定址,但是無變數名的暫存器變數定址屬於無型別量,後面的立即數也是無型別量,所以不符合語法規則,使用ptr偽指令即可修改。還有x屬於位元組型變數,所以不要和8000h比,和80h比就夠了,你不就是想驗證一下零的最高位是一還是零嗎?data segment x db 9,4...