-2
.model small
.stack
.data
msg1 db "Enter string max of 9 characters: $"
msg2 db 13,10, "Enter a number: $"
msg3 db 13,10, "Midstring: $"
strNine db "$"
num db 0,"$"
mid db "$"
varName label byte
maxL db 10
actL db 0
actCont db 10 dup("?")
.code
mov ax,@data
mov ds,ax
;-------------------- Input String ---------------------
mov ah,9
lea dx,msg1
int 21h
mov ah,0ah
int 21h
mov strNine,al
mov bh,strNine
;-------------------- Number ---------------------
mov ah,9
lea dx,msg2
int 21h
mov ah,1
int 21h
mov num,al
mov bl,num
;-------------------- Midstring ---------------------
mov ah,9
lea dx,msg3
int 21h
mov ah,4ch
int 21h
END
我需要找到中間串,因爲我是新彙編語言,所以我被卡住了。彙編語言:完成程序以獲取中間字符串
預期的行爲:
Enter max of 9 String: helloword
Enter a number: 3
Midstring: lloword
最領先的空間,H和E應因爲由用戶輸入的號碼的刪除。
只有一部分得到[我已是擺脫這便是用於索引
我只是需要一些技巧/指導,使我已經保存在BX內存的字符串和數字用戶輸入從你們那裏完成該計劃。
SO不適合尋求指南,但http://stackoverflow.com/tags/x86/info確實有很多指向文檔和指南的鏈接。提示:檢查您正在使用的系統調用的文檔。很確定DOS讀取字符串函數需要一個指向緩衝區的指針。我懷疑你當前的程序甚至可能打印整個字符串。在由特殊字符終止的字符串中,尾隨子串是微不足道的:只傳遞一個指向開始點的指針,它仍然在同一個地方結束。 –
@PeterCordes謝謝。對不起,要求提供提示或指南。我現在對如何使用寄存器和十六進制代碼很困惑。 –
如果你的意思是代碼爲DOS的系統調用,請查看DOS中斷列表以獲取有關係統調用做什麼的文檔。中間字符串問題只是指針數學。 –