Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何通过将密码更改为来隐藏/保护密码*_Assembly_Emu8086 - Fatal编程技术网

Assembly 如何通过将密码更改为来隐藏/保护密码*

Assembly 如何通过将密码更改为来隐藏/保护密码*,assembly,emu8086,Assembly,Emu8086,我正在制作一个程序,要求用户输入密码,如果密码输入正确,它将显示名称MSG3和IDMSG4。下面的代码运行良好,但我只希望密码输入被视为*字符,而不是普通字符串。如果可能的话,我想把用户的输入限制在3个字符以内。我对这门语言不熟悉,希望任何人都能帮助我 代码如下: .DATA MSG1 DB 10,13,’Enter Password: $’ MSG2 DB 10,13,’Incorrect Password! $’ MSG3 DB 10,13,’Sam Smith $’ MSG4 DB 1

我正在制作一个程序,要求用户输入密码,如果密码输入正确,它将显示名称
MSG3
和ID
MSG4
。下面的代码运行良好,但我只希望密码输入被视为*字符,而不是普通字符串。如果可能的话,我想把用户的输入限制在3个字符以内。我对这门语言不熟悉,希望任何人都能帮助我

代码如下:

.DATA 
MSG1 DB 10,13,’Enter Password: $’
MSG2 DB 10,13,’Incorrect Password! $’
MSG3 DB 10,13,’Sam Smith $’ 
MSG4 DB 10,13,’201810282 $’

STR1 DB 'tal'    ;Password 
STR2  DB "*$"

P1 LABEL BYTE      ;Start of data type
M1 DB 0FFH         ;Code so the user can type input. Assigning maximum length of array
L1 DB ?            ;used to Get the length of the entered String by user.
P11 DB 0FFH DUP (‘$’)  ;p11 is the name referred for the Array in the program
;LEA DX, STR2 ; display *
DATA ENDS

DISPLAY MACRO MSG
MOV AH,9
LEA DX,MSG
INT 21H 
ENDM

.CODE
ASSUME CS:CODE,DS:DATA

START:
 MOV AX,DATA
 MOV DS,AX

DISPLAY MSG1 

LEA DX,P1 
MOV AH,0H 
INT 21H 

LEA SI,STR1
LEA DI,P11

MOV CX,3
  
CHECK:
 MOV AL,[SI]
 CMP [DI],AL
 JNE WRONG
 INC SI
 INC DI
 LOOP CHECK

DISPLAY MSG3
DISPLAY MSG4

JMP EXIT

WRONG:
 DISPLAY MSG2
 JMP EXIT

EXIT: 
 MOV AH,4CH
 INT 21H
 CODE ENDS
 END START

MOV-AH,0H
INT-21H
在任何情况下,如果您想在没有回声的情况下读取字符,可以使用
INT-21H
子功能7或8。