{"action":"created","issue":{"url":"https://api.github.com/repos/uxmal/reko/issues/25","repository_url":"https://api.github.com/repos/uxmal/reko","labels_url":"https://api.github.com/repos/uxmal/reko/issues/25/labels{/name}","comments_url":"https://api.github.com/repos/uxmal/reko/issues/25/comments","events_url":"https://api.github.com/repos/uxmal/reko/issues/25/events","html_url":"https://github.com/uxmal/reko/issues/25","id":101981492,"number":25,"title":"Real-mode MSDOS code - switch reconstruction ?","user":{"login":"nemerle","id":96597,"avatar_url":"https://avatars.githubusercontent.com/u/96597?v=3","gravatar_id":"","url":"https://api.github.com/users/nemerle","html_url":"https://github.com/nemerle","followers_url":"https://api.github.com/users/nemerle/followers","following_url":"https://api.github.com/users/nemerle/following{/other_user}","gists_url":"https://api.github.com/users/nemerle/gists{/gist_id}","starred_url":"https://api.github.com/users/nemerle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nemerle/subscriptions","organizations_url":"https://api.github.com/users/nemerle/orgs","repos_url":"https://api.github.com/users/nemerle/repos","events_url":"https://api.github.com/users/nemerle/events{/privacy}","received_events_url":"https://api.github.com/users/nemerle/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/uxmal/reko/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":{"login":"nemerle","id":96597,"avatar_url":"https://avatars.githubusercontent.com/u/96597?v=3","gravatar_id":"","url":"https://api.github.com/users/nemerle","html_url":"https://github.com/nemerle","followers_url":"https://api.github.com/users/nemerle/followers","following_url":"https://api.github.com/users/nemerle/following{/other_user}","gists_url":"https://api.github.com/users/nemerle/gists{/gist_id}","starred_url":"https://api.github.com/users/nemerle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nemerle/subscriptions","organizations_url":"https://api.github.com/users/nemerle/orgs","repos_url":"https://api.github.com/users/nemerle/repos","events_url":"https://api.github.com/users/nemerle/events{/privacy}","received_events_url":"https://api.github.com/users/nemerle/received_events","type":"User","site_admin":false},"assignees":[{"login":"nemerle","id":96597,"avatar_url":"https://avatars.githubusercontent.com/u/96597?v=3","gravatar_id":"","url":"https://api.github.com/users/nemerle","html_url":"https://github.com/nemerle","followers_url":"https://api.github.com/users/nemerle/followers","following_url":"https://api.github.com/users/nemerle/following{/other_user}","gists_url":"https://api.github.com/users/nemerle/gists{/gist_id}","starred_url":"https://api.github.com/users/nemerle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nemerle/subscriptions","organizations_url":"https://api.github.com/users/nemerle/orgs","repos_url":"https://api.github.com/users/nemerle/repos","events_url":"https://api.github.com/users/nemerle/events{/privacy}","received_events_url":"https://api.github.com/users/nemerle/received_events","type":"User","site_admin":false}],"milestone":null,"comments":6,"created_at":"2015-08-19T19:43:51Z","updated_at":"2016-07-31T08:44:15Z","closed_at":null,"body":"While trying out reko on one of dcc's test files (BENCHFN.EXE) I've encountered a known problem with BuildMapping.\r\n\r\nNamely, trying to reconstruct a 'switch', the engine tries to lookup the index table contents from the expression:\r\n```asm\r\nmov     bl, BYTE PTR[bx+0x4F9]\r\n```\r\nNow in 16bit mode the 0x4F9 is actually the data segment relative address of the index table -(ds:0x4F9).\r\nShouldn't 0x4F9 be disassembled/interpreted as a (ds<<4 + 0x4F9) expression, and only if segment value is 'known' i.e.\r\n* proven to be constant on all paths reaching the given instruction\r\n* provided by the user at the instruction/block/function level\r\n\r\nit can then be converted into a proper Address instance ?\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/uxmal/reko/issues/comments/236418484","html_url":"https://github.com/uxmal/reko/issues/25#issuecomment-236418484","issue_url":"https://api.github.com/repos/uxmal/reko/issues/25","id":236418484,"user":{"login":"xor2003","id":1642627,"avatar_url":"https://avatars.githubusercontent.com/u/1642627?v=3","gravatar_id":"","url":"https://api.github.com/users/xor2003","html_url":"https://github.com/xor2003","followers_url":"https://api.github.com/users/xor2003/followers","following_url":"https://api.github.com/users/xor2003/following{/other_user}","gists_url":"https://api.github.com/users/xor2003/gists{/gist_id}","starred_url":"https://api.github.com/users/xor2003/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xor2003/subscriptions","organizations_url":"https://api.github.com/users/xor2003/orgs","repos_url":"https://api.github.com/users/xor2003/repos","events_url":"https://api.github.com/users/xor2003/events{/privacy}","received_events_url":"https://api.github.com/users/xor2003/received_events","type":"User","site_admin":false},"created_at":"2016-07-31T08:44:15Z","updated_at":"2016-07-31T08:44:15Z","body":"Thanks.\r\nYes, there are errors. It might be reason.\r\n(no address or decompailer source file/line so cannot understand the root cause):\r\nWarning,0800:24E6,Procedure sub_1279A previously had a return address of 0 bytes on the stack, but now seems to have a return address of 2 bytes on the stack.\r\nWarning,0800:7551,Procedure setmemalloc2 previously had a return address of 2 bytes on the stack, but now seems to have a return address of 0 bytes on the stack.\r\nWarning,0800:754F,Procedure setmemalloc1 previously had a return address of 2 bytes on the stack, but now seems to have a return address of 0 bytes on the stack.\r\nError,,An internal error occurred. Haven't handled this case yet. \r\nError,,Error when reconstructing types. Not implemented: edx_eax_13 % edi_21 \r\n\r\n"}}
{"actor":{"display_login":"xor2003"}}