0
私はこのプロジェクトを2つの文字列を入力してプログラムが識別します。入力された単語の最初、中、最後の文字を取得するアセンブリ言語
その後、最も長い単語の最初、中、最後の文字を識別します。
..私は..、入力された第二の単語が長い場合それを動作させるために管理が、最初は長く、私は真ん中と最後letter..pleaseの助けを得るカントときに感謝:)
私のコード:
.data
msg db "Enter 1st word: $"
msg1 db 13,10,"Enter 2nd word: $"
msg2 db "1st word is longer $"
msg3 db "2nd word is longer $"
msg4 db "1st letter is: $"
msg5 db "middle letter is $"
msg6 db "last letter is $"
ln db 13,10,10,"$"
str1 dw 20
str2 dw 20
x db '0'
.code
main:
mov ax, @data
mov ds, ax
lea si, str1
lea di, str2
mov ah, 09
mov dx, offset msg
int 21h
mov ah, 0ah
mov dx, si
int 21h
mov ah, 09
mov dx, offset msg1
int 21h
mov ah, 0ah
mov dx, di
int 21h
;counter 1st word
mov bx, 0h
mov bx, str1 + 1
mov cl,bl
;counter 2nd word
mov bx, 0h
mov bx, str2 + 1
mov al, bl
cmp cl, al
jg long
jl short
long:
mov ah, 09
mov dx, offset ln
int 21h
mov ah, 09
mov dx, offset ln
int 21h
mov ah, 09
mov dx, offset msg2
int 21h
;first letter
mov ah, 09
mov dx, offset ln
int 21h
mov ah, 09
mov dx, offset msg4
int 21h
mov ah, 02
mov dl, si+2
int 21h
;/////////////////
;middle:
mov ah, 09
mov dx, offset ln
int 21h
mov ah, 09
mov dx, offset msg5
int 21h
mov bx, 0
mov bx, str1+1
mov ah, 0h
mov al, bl
mov bl, 02
div bl
mov ah, 0h
mov si, ax
mov bx,str1[si+4]
mov al,bl
mov ah, 02
mov dl, al
int 21h
;last
mov ah, 09
mov dx, offset ln
int 21h
mov ah, 09
mov dx, offset msg6
int 21h
mov bx, 0
mov bx, str1 + 1
mov bx, str1[si+6]
mov al, bl
mov ah, 02
mov dl,al
int 21h
jmp exit
short:
mov ah, 09
mov dx, offset ln
int 21h
mov ah, 09
mov dx, offset msg3
int 21h
mov ah, 09
mov dx, offset ln
int 21h
;first letter
mov ah, 09
mov dx, offset msg4
int 21h
mov ah, 02
mov dl, di+2
int 21h
;///////////////////////
;middle:
mov ah, 09
mov dx, offset ln
int 21h
mov ah, 09
mov dx, offset msg5
int 21h
mov bx, 0
mov bx, str2+1
mov ah, 0h
mov al, bl
mov bl, 02
div bl
mov ah, 0h
mov di, ax
mov bx,str1[di+4]
mov al,bl
mov ah, 02
mov dl, al
int 21h
;last
mov ah, 09
mov dx, offset ln
int 21h
mov ah, 09
mov dx, offset msg6
int 21h
mov bx, 0
mov bx, str2 + 1
mov bx, str1[di+6]
mov al, bl
mov ah, 02
mov dl,al
int 21h
jmp exit
exit:
end main
あなたのコードをコメントしてください。あなたのアルゴリズムを説明し、テスト入力と予想される実際の出力を提供してください。デバッガを使用してコードをステップ実行し、自分の間違いを見つける方法を学びます。 – Jester
デバッガは、2番目の単語を読むと面白いことがあります。 –
作業用ケースと非作業用ケースの両方の出力を表示してください。 – prl