- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有这个小c代码
int main (){
int in [50];
int res [50];
int avg=0;
int i=0;
int j=0;
for(i=0;i<50;i++){
in[i]=i*5+28%25;
}
for(i=0;i<50;i++){
avg=0;
for(j=i-4;j<=i+5;j++){
if((j>=0)&&(j<50)){
avg=avg+in[j];
}
avg=avg/10;
res[i]=avg;
}
}
return 0;
}
这是一个简单的移动平均函数
我想得到这段代码对应的汇编代码,但是,我想要的是可以在8086处理器上运行的x86 ISA汇编代码
看了之后我运行了这个命令
bcc -ansi -c -o foo.o foo.c
as86 foo.asm -o foo.o
这以错误告终
as: error opening input file
如何编译我的文件以获得汇编代码?
最佳答案
尝试 bcc -S
获取程序集。例如,如果您键入 bcc -ansi -S foo.c
,您将获得包含以下内容的 foo.s
(为简洁起见删除了调试注释):
export _main
_main:
push bp
mov bp,sp
push di
push si
add sp,#-$CA
xor ax,ax
mov -$CE[bp],ax
dec sp
dec sp
xor ax,ax
mov -$D0[bp],ax
dec sp
dec sp
xor ax,ax
mov -$D2[bp],ax
xor ax,ax
mov -$D0[bp],ax
jmp .3
.4:
mov ax,-$D0[bp]
mov dx,ax
shl ax,*1
shl ax,*1
add ax,dx
add ax,*3
push ax
mov ax,-$D0[bp]
shl ax,*1
mov bx,bp
add bx,ax
mov ax,-$D4[bp]
mov -$68[bx],ax
inc sp
inc sp
.2:
mov ax,-$D0[bp]
inc ax
mov -$D0[bp],ax
.3:
mov ax,-$D0[bp]
cmp ax,*$32
jl .4
.5:
.1:
xor ax,ax
mov -$D0[bp],ax
jmp .8
.9:
xor ax,ax
mov -$CE[bp],ax
mov ax,-$D0[bp]
add ax,*-4
mov -$D2[bp],ax
jmp .C
.D:
mov ax,-$D2[bp]
test ax,ax
jl .E
.10:
mov ax,-$D2[bp]
cmp ax,*$32
jge .E
.F:
mov ax,-$D2[bp]
shl ax,*1
mov bx,bp
add bx,ax
mov ax,-$CE[bp]
add ax,-$68[bx]
mov -$CE[bp],ax
.E:
mov ax,-$CE[bp]
mov bx,*$A
cwd
idiv bx
mov -$CE[bp],ax
mov ax,-$D0[bp]
shl ax,*1
mov bx,bp
add bx,ax
mov ax,-$CE[bp]
mov -$CC[bx],ax
.B:
mov ax,-$D2[bp]
inc ax
mov -$D2[bp],ax
.C:
mov ax,-$D0[bp]
add ax,*5
cmp ax,-$D2[bp]
jge .D
.11:
.A:
.7:
mov ax,-$D0[bp]
inc ax
mov -$D0[bp],ax
.8:
mov ax,-$D0[bp]
cmp ax,*$32
blt .9
.12:
.6:
xor ax,ax
lea sp,-4[bp]
pop si
pop di
pop bp
ret
.data
.bss
关于c - 如何使用 Bruce 的 C 编译器进行编译以获得在 8086 处理器上运行的 asm 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47168171/
我正在阅读“Thinking in java”中的泛型章节。该程序在下面。 public class GenericWriting { static void writeExact(List
我一直在阅读 Thinking in python布鲁斯埃克尔。目前,我正在阅读模式概念一章。在本章中,Eckel 展示了单例在 python 中的不同实现。但是我对Alex Martelli的单例代
以下是 Bruce Eckel 的 Thinking in C++ 的一段话(第 1 卷,第 2 版,第 11 章)在“成员指针”标题下: …a pointer needs an address, b
这里引用 Bruce Eckel 的书“Thinking in Java”: The method argument list specifies what information you pass
有谁知道如何在 java 文件中构建 Bruce eckels 的 Thinking 以在 Eclipse 上运行。并且能够把它解释清楚。我已经尝试了好几天了,使用 stackoverflow 但没有
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我有这个小c代码 int main (){ int in [50]; int res [50]; int avg=0; int i=0; int j=
我正在实模式下编写 C 程序。程序将加载到0x2000:0x0000地址并运行。 DS 寄存器等于CS,即0x2000。我也在用 bochs 调试。 我的目标是在屏幕上打印一些文本。所以我需要内联汇编
我是一名优秀的程序员,十分优秀!