{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,21]],"date-time":"2026-02-21T09:19:38Z","timestamp":1771665578472,"version":"3.50.1"},"reference-count":13,"publisher":"Wiley","issue":"7","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":7426,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1986,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Methods are given for finding a sequence of \u2018add\u2019, \u2018subtract\u2019 and \u2018shift\u2019 instructions to multiply the contents of a register by an integer constant. Each method generalizes the previous one and requires only a few intermediate or scratch registers. A variation of the last method is used in the PL.8 compiler and uses an unnoticeable amount of the overall compile time. Some statistics roughly indicating the effectiveness of the methods are presented.<\/jats:p>","DOI":"10.1002\/spe.4380160704","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T04:34:47Z","timestamp":1163824487000},"page":"641-652","source":"Crossref","is-referenced-by-count":67,"title":["Multiplication by integer constants"],"prefix":"10.1002","volume":"16","author":[{"given":"Robert","family":"Bernstein","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"crossref","unstructured":"M.AuslanderandM.Hopkins \u2018An overview of the PL.8 compiler\u2019 SIGPLAN Symp. on Compiler Construction Boston MA. 1982 22\u201331.","DOI":"10.1145\/872726.806977"},{"key":"e_1_2_1_3_2","first-page":"234","volume-title":"The Structure of Computers and Computations","author":"Kuck D. J.","year":"1978"},{"key":"e_1_2_1_4_2","first-page":"441","volume-title":"The Art of Computer Programming, Vol. 2: Seminumerical Algorithms","author":"Knuth D.","year":"1981"},{"key":"e_1_2_1_5_2","doi-asserted-by":"crossref","unstructured":"G.Radin \u2018The 801 minicomputer\u2019 Proceedings of the ACM Symposium on Architectural Support for Programming Languages and Operating Systems Palo Alto CA. 1982 pp.39\u201347.","DOI":"10.1145\/800050.801824"},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380070311"},{"key":"e_1_2_1_7_2","first-page":"417","volume-title":"The Art of Computer Programming, Vol. 1: Fundamental Algorithms","author":"Knuth D.","year":"1973"},{"key":"e_1_2_1_8_2","doi-asserted-by":"crossref","unstructured":"M.GanapathiandC.Fisher \u2018Description\u2010driven code generation using attribute grammars\u2019 Conference Record of the Ninth Annual Symposium on Principles of Programming Languages Albuquerque NM. January1982 pp.108\u2013119.","DOI":"10.1145\/582153.582165"},{"key":"e_1_2_1_9_2","doi-asserted-by":"crossref","unstructured":"R. S.GlanvilleandS. L.Graham \u2018A new method for compiler code generation\u2019 Conference Record of the Fifth Annual Symposium on Principles of Programming Languages Tucson AZ. January1978 pp.231\u2013240.","DOI":"10.1145\/512760.512785"},{"key":"e_1_2_1_10_2","first-page":"585","volume-title":"Compilers, Principles, Techniques and Tools","author":"Aho A.","year":"1986"},{"key":"e_1_2_1_11_2","doi-asserted-by":"crossref","unstructured":"G.Chaitin \u2018Register allocation & spilling via graph coloring\u2019 SIGPLAN Symp. on Compiler Construction Boston MA. 1982 pp.98\u2013105.","DOI":"10.1145\/872726.806984"},{"key":"e_1_2_1_12_2","doi-asserted-by":"publisher","DOI":"10.1016\/0096-0551(81)90048-5"},{"key":"e_1_2_1_13_2","first-page":"199","volume-title":"MC68000 16\u2010Bit Microprocessor User's Manual","author":"Motorola Inc.","year":"1982"},{"key":"e_1_2_1_14_2","unstructured":"Intel Inc. iAPX 86 88 User's Manual 1981 pp.2\u201052\u20132\u201055."}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380160704","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380160704","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,21]],"date-time":"2023-10-21T05:53:18Z","timestamp":1697867598000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380160704"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1986,7]]},"references-count":13,"journal-issue":{"issue":"7","published-print":{"date-parts":[[1986,7]]}},"alternative-id":["10.1002\/spe.4380160704"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380160704","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1986,7]]}}}