Stack Community!
我目前正在使用Ubuntu 17.10和汇编语言学习者。当我在Windows上时,我使用名为'win32a.inc'和“MyLib.inc”的库来 read_eax 和 print_hex 即可。语法过去是这样的:
import { FlashMessagesService } from 'angular2-flash-messages';
import { ConfigurationService } from 'app/+configuration/configuration.service';
import { Component, OnInit } from '@angular/core';
declare var $: any;
@Component({
selector: 'tax-list',
templateUrl: './tax-list.component.html'
})
export class TaxListComponent implements OnInit {
tableData: any;
constructor(private _config: ConfigurationService, private _flash: FlashMessagesService) { }
ngOnInit() {
this.fetchTableData();
this.buttonEvents();
}
fetchTableData() {
this.tableData = {
ajax: (data, callback, settings) => {
this._config.getTaxRules().subscribe(data => {
if (data.success) {
callback({
aaData: data.data
});
} else {
alert(data.msg);
}
},
error => {
alert('Internal server error..check database connection.');
});
},
serverSIde:true,
columns: [
{
render: function (data, type, row, meta) {
return meta.row + 1;
}
},
{ data: 'tax_title' },
{ data: 'tax_rate' },
{ data: 'status' },
{
render: function (data, type, row) {
return `<button type="button" class="btn btn-warning btn-xs edit" data-element-id="${row._id}">
<i class="fa fa-pencil-square-o"></i> Edit</button>
<button type="button" class="btn btn-danger btn-xs delete" data-element-id="${row._id}">
<i class="fa fa-pencil-square-o"></i> Delete</button>`;
}
}
],
buttons: [
'copy', 'pdf', 'print'
]
};
}
buttonEvents(){
document.querySelector('body').addEventListener('click', (event) => {
let target = <Element>event.target; // Cast EventTarget into an Element
if (target.tagName.toLowerCase() === 'button' && $(target).hasClass('edit')) {
this.tax_edit(target.getAttribute('data-element-id'));
}
if (target.tagName.toLowerCase() === 'button' && $(target).hasClass('delete')) {
this.tax_delete(target.getAttribute('data-element-id'));
}
});
}
tax_edit(tax_id) {
}
tax_delete(tax_id) {
this._config.deleteTaxById(tax_id).subscribe(data => {
if (data.success) {
this._flash.show(data.msg, { cssClass: 'alert alert-info fade in', timeout: 3000 });
this.fetchTableData();
} else {
this._flash.show(data.msg, { cssClass: 'alert alert-warning fade in', timeout: 3000 });
}
},
error => {
this._flash.show(error, { cssClass: 'alert alert-warning fade in', timeout: 3000 });
});
}
reloadTable(){
this.ngOnInit();
}
}
但是在Windows上没有良好的体验,让我转向Linux。我这样做是为了安装fasm:
format PE console
include 'win32a.inc'
entry start
section '.text' code readable executable
start:
mov eax,0xffff
call print_eax
push 0
call [ExitProcess]
include 'MyLib.inc'
但是当我尝试制作一个可执行文件时(我计划用葡萄酒运行)我在终端上收到错误:'win32a.inc'源文件丢失。
'win32a.inc'是Windows上的默认fasm库。我不知道如何在Linux中使用它。我有所有Windows库的备份; _;
有没有办法可以使用FASM在Linux中制作可移植的可执行文件?
答案 0 :(得分:1)
您可以在任何操作系统上编译为FASM支持的任何类型的文件。
诀窍是FASM的Windows端口将文件名视为不区分大小写,但Linux FASM将它们视为区分大小写。
因此,请检查include
指令中使用的文件名的大小写。
FASM默认包含库的实际文件名 all UPPERCASE 。因此,如果要使用Linux(或任何其他Unix类型操作系统)FASM编译此代码,则需要使用WIN32A.INC
。