Reputation: 43
I'm getting
Microsoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: E:\RaamSoft\SICBasm\EasyCode\TestIOsicb2.asm
ASCII build
E:\RaamSoft\SICBasm\EasyCode\TestIOsicb2.asm(117) : error A2070: invalid instruc tion operands E:\RaamSoft\SICBasm\EasyCode\TestIOsicb2.asm(118) : error A2006: undefined symbo l : axe E:\RaamSoft\SICBasm\EasyCode\TestIOsicb2.asm(119) : error A2006: undefined symbo l : axe E:\RaamSoft\SICBasm\EasyCode\TestIOsicb2.asm(120) : error A2006: undefined symbo l : axe E:\RaamSoft\SICBasm\EasyCode\TestIOsicb2.asm(121) : error A2006: undefined symbo l : axe E:\RaamSoft\SICBasm\EasyCode\TestIOsicb2.asm(123) : error A2006: undefined symbo l : axe E:\RaamSoft\SICBasm\EasyCode\TestIOsicb2.asm(125) : error A2006: undefined symbo l : axe E:\RaamSoft\SICBasm\EasyCode\TestIOsicb2.asm(132) : error A2006: undefined symbo l : axe _ Assembly Error Press any key to continue . . .
These are statements 117 thru 134.
bt [esi + ebx + 4], 15 ; El año es impar?
mov axe, esi
add axe, ebx
add axe, 4
bt [axe], 15 ; El año es impar?
jc skipdia ; Si, no puede ser bisiesto
bt [axe], 7 ; La decada es impar?
jnc TestMul4
bt [axe], 14 ; El año es 2 o 6?
jnc skipdia
Pon29:
mov ax, 3239h
mov [edi], ax
jmp skipdia
TestMul4:
bt [axe], 14 ; El año es 2 o 6?
jc skipdia ; Si, no puede ser bisiesto
jmp Pon29
What worries me is the syntax of BT, and for that of all instructions. I have not found a clear cut explanation to this. I'm shore it must be out there. I'm also interested in instruction timings having programmed in IBM /360 in BPS Assembly for IBM 1419 which has asynchronous processing of pocket selection with time constraints.
Upvotes: 1
Views: 414
Reputation: 1557
Remove the square brackets (and in the first instance, arrange for eax to hold the value you need to test in the register itself before you bit test).
[eax] = Access the address referenced by eax, not the value of eax.
Upvotes: 1