[操作疑難] 有冇師兄寫assembly langauage?

玩緊個password program, 當user 係keyboard 打a - z 時用_GetCh 去get user keyboard input 然後mask 哂做 *,但唔知點解唔work.....有冇師兄幫到手?
唔該
  1. .model small
  2. .586
  3. .stack 100h
  4. INCLUDE PCMAC.INC
  5. .DATA

  6. MSG DB 'Enter Password:
  7. PWD DB 'abcd'

  8. .CODE

  9. PASSWORD PROC
  10.      mov ax, @DATA
  11.      mov ds, ax
  12.      mov dx, offset pwd

  13. GetLoop:
  14.      _Begin
  15.      _PutStr msg
  16.      _GetCh noEcho
  17.      cmp al, 13
  18.      je DONE
  19.      cmp al, 'a'
  20.      jnae al, EchoIt
  21.      cmp al, 'z'
  22.      jnbe al, EchoIt
  23.      add al, '*'

  24. EchoIt:
  25.      _PutCh al
  26.      jmp GetLoop

  27. DONE:
  28.      _Exit 0

  29. PASWORD ENDP
  30. END PASSWORD
複製代碼

本帖最後由 stephenwong 於 2021-4-21 10:02 編輯
玩緊個password program, 當user 係keyboard 打a - z 時用_GetCh 去get user keyboard input 然後mask 哂做 ...
楊威利@HGC 發表於 2021-4-21 04:46


嘩,多嘢囉!
1)_PutStr, _Exit, _GetCh, 係邊度?API 係點樣,pass by AL 呀?
2) 27 行, add al, '*', 咪將粒星 (42)加咗落 AL 囉,唔會印粒星出來噃!
3)人家入 control char,例如 CTRL-C,你又照加粒星比佢?
4)人家打個中文字呢?星星佢?

TOP

回覆 2# stephenwong

其實仲未寫完,我都係一路試一路寫
而家試緊緊既係line 20 get 完keyboard input, return 就end code, line 23開始只compare a至z,打一個字就mask 一個 *,但而家出既係亂碼.....唔係 *

TOP

回覆  stephenwong

其實仲未寫完,我都係一路試一路寫
而家試緊緊既係line 20 get 完keyboard input, ret ...
楊威利@HGC 發表於 2021-4-21 10:23


27 行, add al, '*', 咪將粒星 (42)加咗落 AL 囉,唔會印粒星出來噃!
mov al, '*'

TOP

本帖最後由 楊威利@HGC 於 2021-4-21 11:39 編輯

回覆 4# stephenwong

出黎變左咁
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

如果assembler有跟debugger 就學用.

TOP

如果assembler有跟debugger 就學用.
gilbertluis 發表於 2021-4-22 15:49


有㗎,PC 行 Linux,用 gdb 囉!

TOP

玩緊個password program, 當user 係keyboard 打a - z 時用_GetCh 去get user keyboard input 然後mask 哂做 ...
楊威利@HGC 發表於 2021-4-21 04:46



    點解只問人寫唔寫 assembly , 又唔講下各自各寫乜 platform o既 assembly ?

TOP

重覆出現 Enter Password 問題, 估計可以把 GetLoop: 移下兩行
  1. PASSWORD PROC
  2.      mov ax, @DATA
  3.      mov ds, ax
  4.      mov dx, offset pwd

  5.      _Begin
  6.      _PutStr msg
  7. GetLoop:
  8.      _GetCh noEcho
  9.      cmp al, 13
複製代碼
另外亂碼問題, 4樓 mov al,'*' 應該己經可以解決到. 如果仲係出亂碼, 都諗唔通了.
我無寫開 asm, 只係識好少. 完全係亂up,有錯有漏莫怪.

TOP

直接用fasm 不要用 DOS
學得比較快

TOP