Path: utzoo!attcan!uunet!bu.edu!att!cbnews!shurr From: shurr@cbnews.att.com (Larry A. Shurr) Newsgroups: comp.os.msdos.programmer Subject: Re: Int 10H Function 13H - How Do I access BP from C ? Message-ID: <1990Oct24.172423.22512@cbnews.att.com> Date: 24 Oct 90 17:24:23 GMT References: <1990Oct19.202013.28397@nada.kth.se> <685@digigw.digital.co.jp> Organization: AT&T Bell Laboratories, Columbus, OH (actually an AGS consultant) Lines: 34 In article <685@digigw.digital.co.jp>, gday@digigw.digital.co.jp (Gordon Day) writes: } In article <1990Oct21.204236.22011@nada.kth.se>, d87-vik@dront.nada.kth.se (Ville K{rkk{inen) writes: } } [Wishes to access BP from C source level in MSoft C.] } Unfortunately, you can't do this from Microsoft C (at least, not without some } inline assembler). } The reason is that the definition } of the language doesn't support the idea of "named" registers, that is, a } mapping of a special variable name directly to a physical machine register. } There is nothing stopping a compiler implementor from doing this (e.g. the } VAX based BSD4.3 C compiler), but no compilers (to my knowledge) on the PC do, You may be interested to know that Turbo C does provide this facility. Thus, one can write: _AX = 1; and the AX register gets the value 1. You must, however, keep your brain engaged when using this facility, I once coded the following: _AX = foo; _BX = this + that; Afterwords, both AX and BX contained the value of the expression "this + that." Imagine that! The compiler used the AX register to calculate the value of the expression, clobbering what I had put in there beforehand... just like you would expect. regards, Larry -- Larry A. Shurr (cbnmva!las@att.ATT.COM or att!cbnmva!las) The end of the world has been delayed due to a shortage of trumpet players. (The above reflects my opinions, not those of AGS or AT&T, but you knew that.)