我为一个汇编程序编写了代码,但我对python还不熟悉。
在我的代码中,我让用户输入一个将被转换成汇编语言的文件。我想我已经差不多可以用了,但是我不知道用户在哪里输入文件名。
我在空闲状态,当我按下F5时,它在shell中运行。我收到一个错误,但我很确定是因为没有输入文件名。
用户应该在哪里输入这些东西?这是从python shell完成的,还是从命令行完成的,我需要将其转换为可执行文件吗?
有人能帮忙澄清用户在哪里输入这些信息吗?
我会输入一段代码,虽然我不认为有必要回答我的问题,但也许这会让你更好地了解我的问题。if __name__ == '__main__':
import sys
if len(sys.argv) == 1:
print 'need filename'
sys.exit(-1)
table = SymbolTable()
parser = Parser(sys.argv[1])
parser.advance()
line = 0
while parser.hasMoreCommands():
if parser.commandType() == 'L_COMMAND':
table.addEntry(parser.symbol(), line)
else:
line += 1
parser.advance()
code = Code()
parser = Parser(sys.argv[1])
parser.advance()
var_stack = 16
while parser.hasMoreCommands():
cmd_type = parser.commandType()
if cmd_type == 'A_COMMAND':
number = 32768
try:
addr = int(parser.symbol())
except:
if table.contains(parser.symbol()):
addr = table.getAddress(parser.symbol())
else:
table.addEntry(parser.symbol(), var_stack)
addr = var_stack
var_stack += 1
bin_number = bin(number | addr)[3:]
assembly = '0' + bin_number
print assembly
elif cmd_type == 'C_COMMAND':
assembly = '111'
assembly += code.comp(parser.comp())
assembly += code.dest(parser.dest())
assembly += code.jump(parser.jump())
print assembly
parser.advance()
要注意的部分在开始的第4-6行,它在那里检查文件名。因此,一旦我运行我的程序,我会得到'需要文件名'打印到屏幕上,并显示一条错误消息,如下所示:Traceback (most recent call last):
File "C:\Python27\Assembler.py", line 98, in
sys.exit(-1)
SystemExit: -1
那么我在哪里可以输入文件名来避免这个错误呢?