Click here to Skip to main content
15,881,751 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: From my crossassembler's manual Pin
OriginalGriff5-Dec-20 10:50
mveOriginalGriff5-Dec-20 10:50 
GeneralRe: From my crossassembler's manual Pin
glennPattonWork35-Dec-20 10:58
professionalglennPattonWork35-Dec-20 10:58 
GeneralRe: From my crossassembler's manual Pin
CodeWraith5-Dec-20 11:42
CodeWraith5-Dec-20 11:42 
GeneralRe: From my crossassembler's manual Pin
OriginalGriff5-Dec-20 20:20
mveOriginalGriff5-Dec-20 20:20 
GeneralRe: From my crossassembler's manual Pin
trønderen5-Dec-20 13:40
trønderen5-Dec-20 13:40 
GeneralRe: From my crossassembler's manual Pin
CodeWraith5-Dec-20 14:40
CodeWraith5-Dec-20 14:40 
GeneralRe: From my crossassembler's manual Pin
trønderen5-Dec-20 17:25
trønderen5-Dec-20 17:25 
GeneralRe: From my crossassembler's manual Pin
CodeWraith5-Dec-20 23:21
CodeWraith5-Dec-20 23:21 
trønderen wrote:
All algorithms can equally well be coded in a HLL.
Not every device is a state of the art PC with the strongest processor and plenty of memory. Think of the other end of the spectrum, like microcontrollers. Things like serial communication with a terminal in software without a UART, just bit banging two I/O pins.

Or generating a video signal in software. On my oldest computer this is really done that way. The graphics chip only provides the correct timing and the CPU acts as interrupt and DMA controller to provide the video data on the bus just at the moment it is expected.

Such things require very careful timing and a HLL usually does not give you enough control over the resulting code to do that.

And not all processors do even fundamental things the same way. My old processor, for example, does not have any instructions to call or return from a subroutine. You have to use small procedures with two separate program counters to call a subroutine or to return.

How primitive, right? The processor is just as flexible with the stack pointer as it is with the program counter, so let's use two stacks. A call stack and a parameter stack to make passing parameters a little less complicated. Or let's add some memory management to dynamically load (or even compile just in time) the requested code module. By the way that also opens the way to expanding the memory far beyond the usual addressing range of the processor. The page adress is stored on the call stack along with the return address. The processor does not notice anything.

You see where this is going. Most high level languages take the usual calling conventions for granted. They would not let me use this processor's abilities other than in the usual way. Leaving the beaten paths is one of the most interesting things a programmer can do and high level languages don't easily let me go there because they are built on these beaten paths.
I have lived with several Zen masters - all of them were cats.

His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.

GeneralRe: From my crossassembler's manual Pin
trønderen6-Dec-20 8:20
trønderen6-Dec-20 8:20 
GeneralRe: From my crossassembler's manual Pin
CodeWraith6-Dec-20 14:39
CodeWraith6-Dec-20 14:39 
GeneralRe: From my crossassembler's manual Pin
trønderen7-Dec-20 11:28
trønderen7-Dec-20 11:28 
GeneralRe: From my crossassembler's manual Pin
CodeWraith7-Dec-20 13:03
CodeWraith7-Dec-20 13:03 
GeneralRe: From my crossassembler's manual Pin
den2k886-Dec-20 6:05
professionalden2k886-Dec-20 6:05 
GeneralRe: From my crossassembler's manual Pin
trønderen6-Dec-20 8:36
trønderen6-Dec-20 8:36 
GeneralRe: From my crossassembler's manual Pin
den2k886-Dec-20 11:18
professionalden2k886-Dec-20 11:18 
GeneralRe: From my crossassembler's manual Pin
Richard MacCutchan5-Dec-20 21:35
mveRichard MacCutchan5-Dec-20 21:35 
GeneralRe: From my crossassembler's manual Pin
CodeWraith5-Dec-20 23:29
CodeWraith5-Dec-20 23:29 
GeneralRe: From my crossassembler's manual Pin
Richard MacCutchan6-Dec-20 1:25
mveRichard MacCutchan6-Dec-20 1:25 
GeneralRe: From my crossassembler's manual Pin
dandy726-Dec-20 3:24
dandy726-Dec-20 3:24 
GeneralRe: From my crossassembler's manual Pin
CodeWraith6-Dec-20 3:54
CodeWraith6-Dec-20 3:54 
GeneralRe: From my crossassembler's manual Pin
dandy727-Dec-20 9:24
dandy727-Dec-20 9:24 
GeneralRe: From my crossassembler's manual Pin
den2k886-Dec-20 5:53
professionalden2k886-Dec-20 5:53 
JokeAin't it the truth PinPopular
Mike Hankey5-Dec-20 8:19
mveMike Hankey5-Dec-20 8:19 
GeneralRe: Ain't it the truth Pin
OriginalGriff5-Dec-20 9:46
mveOriginalGriff5-Dec-20 9:46 
GeneralRe: Ain't it the truth Pin
Slacker0075-Dec-20 9:55
professionalSlacker0075-Dec-20 9:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.