我实现了strchr()
<select ng-model="selectedName" ng-options="x for x in names"></select>
<small ng-show="!names.length">No data to choose from</small>
...
app.controller('myCtrl', function($scope) {
$scope.names = [];
});
当我使用
global strchr
strchr:
cmp byte[rdi], 0
je end
cmp [rdi], sil
je end
add rdi, 1
jmp strchr
end: mov rax, rdi
ret
Ubuntu 16.04崩溃。有时它会完全破解,有时会显示SIGILL(损坏的数据?)。
当我使用opensuse 4预加载它时,它可以工作。
知道为什么吗?
答案 0 :(得分:1)
感谢Michael Petch:
strchr()不符合手册,因为在找不到字符时它不会返回NULL。
修正了strchr():
global strchr
strchr:
cmp [rdi], sil;first check for character (useful if user searches '\0')
je end
cmp byte[rdi], 0;then if it is EoS and the character is not in the string, return NULL
je eos
add rdi, 1
jmp strchr
eos: mov rax, 0
ret
end: mov rax, rdi
ret