如何解决在程序集中声明和访问字符串32位Debian CommandLine OS
首先,这是一项家庭作业,但我终生无法在网上找到任何可靠的资源来解释教授使用的语法。
我想在这方面先做功课,以免直接得到答案,而是要求解释,以便将来学习。我的教授不是最擅长提供学习这些知识的资源,因此我决定向SO的优秀人才寻求帮助。
任务很简单。使用一串字符串(北约军事字母),从用户那里接收一系列单词,然后以军事字母的形式将这些单词输出到屏幕上。
例如,输入“ Feed”将输出为:
Foxtrot
Echo
Echo
Delta
我的问题很基本。如何在Assembly中声明一个字符串数组(我很确定我使用的是AT&T语法,因为它在变量和寄存器之前使用$和%)?
感谢您的提前帮助!让我知道是否需要详细说明,我很乐意这样做。
编辑1:
因此,通过评论中的一些解释,到目前为止,我已经提出了用于定义地址数组的地址,这些地址指向军事字母的asciz值。
.section .data
Alpha: .asciz "Alpha"
Beta: .asciz "Beta"
Charlie: .asciz "Charlie"
Delta: .asciz "Delta"
Echo: .asciz "Echo"
Foxtrot: .asciz "Foxtrot"
Golf: .asciz "Golf"
Hotel: .asciz "Hotel"
India: .asciz "India"
Juliet: .asciz "Juliet"
Kilo: .asciz "Kilo"
Lima: .asciz "Lima"
Mike: .asciz "Mike"
November: .asciz "November"
Oscar: .asciz "Oscar"
Papa: .asciz "Papa"
Quebec: .asciz "Quebec"
Romeo: .asciz "Romeo"
Sierra: .asciz "Sierra"
Tango: .asciz "Tango"
Uniform: .asciz "Uniform"
Victor: .asciz "Victor"
Whiskey: .asciz "Whiskey"
Xray: .asciz "X-Ray"
Yankee: .asciz "Yankee"
Zulu: .asciz "Zulu"
MAlpha: .long Alpha,Beta,Charlie,Delta,Echo,Foxtrot,Golf,Hotel,India,Juliet,Kilo,Lima,Mike,November,Oscar,Papa,Quebec,Romeo,Sierra,Tango,Uniform,Victor,Whiskey,Xray,Yankee,Zulu
解决方法
如帖子的编辑所示,在评论的帮助下,我自己回答了这个问题!
.section .data
Alpha: .asciz "Alpha"
Beta: .asciz "Beta"
Charlie: .asciz "Charlie"
Delta: .asciz "Delta"
Echo: .asciz "Echo"
Foxtrot: .asciz "Foxtrot"
Golf: .asciz "Golf"
Hotel: .asciz "Hotel"
India: .asciz "India"
Juliet: .asciz "Juliet"
Kilo: .asciz "Kilo"
Lima: .asciz "Lima"
Mike: .asciz "Mike"
November: .asciz "November"
Oscar: .asciz "Oscar"
Papa: .asciz "Papa"
Quebec: .asciz "Quebec"
Romeo: .asciz "Romeo"
Sierra: .asciz "Sierra"
Tango: .asciz "Tango"
Uniform: .asciz "Uniform"
Victor: .asciz "Victor"
Whiskey: .asciz "Whiskey"
Xray: .asciz "X-Ray"
Yankee: .asciz "Yankee"
Zulu: .asciz "Zulu"
MAlpha: .long Alpha,Beta,Charlie,Delta,Echo,Foxtrot,Golf,Hotel,India,Juliet,Kilo,Lima,Mike,November,Oscar,Papa,Quebec,Romeo,Sierra,Tango,Uniform,Victor,Whiskey,Xray,Yankee,Zulu
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。