我想在Windows下编写基本的程序集,我正在使用NASM,但我无法正常工作.
如何在Windows上没有C函数的帮助下编写和编译hello world?
我对以下MIPS代码有一个问题:如果第一条指令放置在0xFFFFFF00处的内存地址中,那么指令“j LoopEnd”的十六进制表示是什么?我不知道该怎么做。任何帮助将不胜感激。谢谢。
loop:
slt $t9, $s3, $s2
bne $t9, $zero, end
add $s4, $s2, $s3
srl $s4, $s4, 1
sll $t0, $s4, 2
add $t0, $s0, $t0
lw $t1, 0($t0)
slt $t9, $s1, $t1
beq $t9, $zero, bigger
addi $s3, $s4, -1
j loopEnd
loopEnd:
j loop
Run Code Online (Sandbox Code Playgroud) 没有任何权限,在Play商店有一个名为bodyweight fitness的应用程序 .它也可以在git hub上使用:https: //github.com/mazurio/bodyweight-fitness-android
我使用了来自git hub的文件并使用Android Studio自行编译了apk (无需更改文件).当我尝试安装自编译应用程序apk时,它告诉我它将使用INTERNET虽然Play商店应用程序没有.这个应用程序没有理由需要任何互联网连接.因此我从AndroidManifest.xml中删除了这一行
<uses-permission android:name="android.permission.INTERNET" />
编译和安装应用程序后,它仍然告诉我它将使用INTERNET.有人知道为什么以及如何删除此权限?
PS:我也问了开发人员,但我还没有回复.
更新:
android user-permissions android-install-apk android-permissions android-studio
我正在编写一个简单的程序来显示用户提供的名称.结果是我应该能够输入命令并获得预期的结果.
命令
./hello John
Run Code Online (Sandbox Code Playgroud)
结果
Hello, John.
Run Code Online (Sandbox Code Playgroud)
然而,当程序开始显示名称时,它却没有.我认为它与计算参数的长度有关.请你们看看我的代码并告诉我你的想法?
; hello.asm
;
; Assemble: nasm -f elf hello.asm
; Link: ld -o hello hello.o
; Run: ./hello <name>
section .data
period: db ".", 10
periodLen: equ $-period
helloMsg: db "Hello, "
helloMsgLen: equ $-helloMsg
usageMsg: db "Usage: hello <name>", 10
usageMsgLen: equ $-usageMsg
section .text
global _start
_start:
pop eax ; Get number of arguments
cmp eax, 2 ; If one argument
jne _help ; Not equal, show help + exit …Run Code Online (Sandbox Code Playgroud) 我有两个问题.第一个:'或'与'cmp'有什么区别?我已经看过了两个,看起来他们做了同样的事情.我的第二个问题:做什么
or al, al
Run Code Online (Sandbox Code Playgroud)
意思?它不应该一直返回真(如x == x)吗?
我正在使用 gdb 调试一个非常简单的代码:
mov ebp,eax ; Save # of bytes read from file for later
Run Code Online (Sandbox Code Playgroud)
这是我的输出:
Breakpoint 2, Read () at hexdump1.asm:44
(gdb) info register eax
eax 0xd 13
(gdb) step
Read () at hexdump1.asm:45
(gdb) info register ebp
ebp 0xd 0xd
Run Code Online (Sandbox Code Playgroud)
为什么 gdb 显示 eax 为 0xd 13,而 ebp 显示为 0xd 0xd?