Используйте функцию callback()
внутри успеха foo()
. Попробуйте таким образом. Это просто и легко понять. & nbsp;
var lat = "";
var lon = "";
function callback(data) {
lat = data.lat;
lon = data.lon;
}
function getLoc() {
var url = "http://ip-api.com/json"
$.getJSON(url, function(data) {
callback(data);
});
}
getLoc();
CMP [BX], 12ADH
Это действительно неверная инструкция, так как вы не указали размер первого операнда. Предполагая, что вы намерены сравнить WORD (16 бит), например:
CMP WORD [BX], 12ADH
Это сначала извлечет 16-битное WORD из памяти по адресу, указанному в регистре BX. Затем он сравнивает это значение с непосредственным значением 12ADh
.
Обратите внимание, что CMP
выполняет ту же функцию, что и SUB
, но без фактического изменения любых значений. Он только «притворяется» для выполнения вычитания и соответственно устанавливает FLAGS
.
MOV EBX, [BX]
Это приведет к извлечению 32-разрядного DWORD из памяти по адресу, указанному в регистре BX. Затем он сохранит это значение в регистре EBX.
В выражении типа WORD [BX]
можно сказать, что BX "указывает на" 16-битное WORD в памяти:
Memory Register File
...
_________ ________
100h | 1234h | /---- | 102h | BX
|_________| | |________|
102h | 5678h | <---/ ...
|_________|
104h | 9ABCh |
|_________|
106h | DEF0h |
|_________|
...