%!PS-Adobe-1.0 %%Creator: devps (Pipeline Associates, Inc.) %%CreationDate: Fri Sep 13 14:26:34 1996 %%Pages: (atend) %%DocumentFonts: (atend) /devps 180 dict def devps begin /res 10.000000 def /y_offset 843 def /X{exch}bind def /mm {transform round X round X itransform} bind def /r{rmoveto}bind def /m{moveto}bind def /l{lineto}bind def /rl{rlineto}bind def /st{stroke}bind def /gs{gsave}bind def /gr{grestore}bind def /cp{currentpoint}bind def /np{newpath}bind def /ct{curveto}bind def systemdict /setpacking known { /savepacking currentpacking def true setpacking } if /m0{0 0 moveto}bind def /xc{//res div}bind def /yc{//res neg div //y_offset add}bind def /lc{yc X xc X l st}bind def /mc{yc X xc X m}bind def /el{gs /a X def a div 1 X scale cp np a xc 2 div 0 360 arc st gr}bind def /ar{cp 7 2 roll np xc 5 1 roll atan 3 1 roll atan X arc st}bind def /sp{yc X xc X 6 2 roll yc X xc X 6 2 roll yc X xc X 6 2 roll ct}bind def /V{//res neg div //y_offset add currentpoint pop X m}bind def /H{//res div 0 transform X round X itransform pop currentpoint X pop moveto}bind def /h{//res div 0 r}bind def /v{//res neg div 0 X r}bind def /S{X H show}bind def /A{H //res div 1 index stringwidth pop sub 1 index length div 0 3 2 roll ashow}bind def /psize 10 def /height 0 def /cheight { height 0 ne { height } { psize } ifelse } bind def /slant 0 def /FF{findfont X dup 30 div 0 mm pop setlinewidth /psize X def [psize 0 cheight slant sin slant cos div mul cheight 0 0] makefont setfont}bind def /shade{gs /dy X def /dx X def np m 0 /dy rl /dx 0 rl 0 /dy neg rl /dx neg 0 rl closepath .9 setgray fill gr}bind def 1 setlinecap /resolution res 72 mul def /startFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /ury exch def /urx exch def /lly exch def /llx exch def /y exch 72 mul resolution div def /x exch 72 mul resolution div def currentpoint /cy exch def /cx exch def /sx x urx llx sub div def /sy y ury lly sub div def sx sy scale cx sx div llx sub cy sy div ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def }bind def /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto }bind def /doclip { llx lly urx ury clipFig } def /endFig { end SavedState restore }bind def /globalstart { fontnum psize slant height resolution currentpoint pagesave restore gsave }bind def /globalend { grestore moveto /resolution exch def /height exch def /slant exch def /psize exch def /fontnum exch def F /pagesave save def }bind def /fontnum 1 def systemdict /setpacking known { savepacking setpacking} if end /BP{ save mark devps begin m0 /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def }bind def /EP{ end cleartomark restore showpage}def /R{/Times-Roman FF}def /B{/Times-Bold FF}def /Y{/Symbol FF}def /I{/Times-Italic FF}def %% Troff special characters not on Symbol font %% Copyright (C) 1986 by Pipeline Associates, Inc. %% Version 1.0 %% $Header: Troff.pro,v 1.7 90/08/14 16:07:55 keie Exp $ /altRTD 20 dict def altRTD begin /s{setcachedevice}bind def /m{moveto}bind def /c{curveto}bind def /S{stroke}bind def /l{lineto}bind def end /F_Troff 17 dict def F_Troff begin systemdict /currentpacking known {/SavePacking currentpacking def true setpacking}if /PaintType 0 def /FontType 3 def /StrokeWidth 25 def /UniqueID 8277030 def /FontMatrix [.001000 0 0 .001000 0 0] def /FontBBox [-85 -150 1000 1000 ] def /Encoding 256 array def /CD 256 1 add dict def /FontInfo 3 dict def FontInfo begin /UnderlinePosition -133 def /UnderlineThickness 20 def end /FontName (Troff) def 0 1 256 1 sub{Encoding exch /.notdef put}for CD /.notdef{500 0 setcharwidth{}}put Encoding (1) 0 get /br put %% bold vertical rule used by tbl CD /br{ 0 0 -500 -500 1000 1000 s np clw 0 -100 m 0 900 l {S} }put Encoding (2) 0 get /ul put %% underline used by tbl CD /ul{ 500 0 0 -200 500 0 s np clw 0 -100 m 500 -100 l {S} }put Encoding (3) 0 get /ru put %% baseline rule CD /ru{ 500 0 -500 -500 1000 1000 s np clw m0 500 0 l {S} }put Encoding (4) 0 get /vr put %% vertical rule CD /vr{ 0 0 -500 -500 1000 1000 s np clw m0 0 1000 l {S} }put Encoding (5) 0 get /sq put %% square CD /sq{ 500 0 0 0 500 1000 s np m0 0 500 rl 500 0 rl 0 -500 rl -500 0 rl closepath 61 61 m 378 0 rl 0 378 rl -378 0 rl closepath {fill} }put Encoding (6) 0 get /bx put %% solid box CD /bx{ 500 0 0 0 500 1000 s np m0 0 500 rl 500 0 rl 0 -500 rl closepath {fill} }put Encoding (7) 0 get /rn put %% radical extender CD /rn{ 500 0 -500 -500 1000 1000 s np 30 setlinewidth -30 900 m 500 0 rl {S} }put Encoding 120 /rc put %% top of right bracket above braceex CD /rc { 494 0 -85 -80 255 926 s 201 -80 m 201 872 l -85 872 l -85 926 l 255 926 l 255 -80 l closepath {fill} } put Encoding 121 /lc put %% top of left bracket above braceex CD /lc { 491 0 201 -80 541 926 s 201 -80 m 201 926 l 541 926 l 541 872 l 255 872 l 255 -80 l closepath {fill} } put Encoding 122 /rf put %% bottom of right bracket below braceex CD /rf { 494 0 -85 -80 255 926 s -85 -80 m -85 -26 l 201 -26 l 201 926 l 255 926 l 255 -80 l closepath {fill} } put Encoding 123 /lf put %% bottom of left bracket below braceex CD /lf { 494 0 201 -80 541 926 s 201 -80 m 201 926 l 255 926 l 255 -26 l 872 -26 l 872 -80 l closepath {fill} } put Encoding 97 /a put CD /a{5 setlinewidth 1000 0 0 66 942 421 s 430 415 m 578 406 678 349 662 319 c 655 306 614 287 583 296 c 570 300 466 340 438 332 c 365 309 335 213 270 209 c 0 310 m 108 310 l 108 114 l 0 114 l 0 310 l 42 161 m 42 134 l 66 134 l 66 161 l 42 161 l 47 155 m 47 140 l 62 140 l 62 155 l 47 155 l 110 133 m 226 113 300 66 410 80 c 497 91 550 69 634 76 c 645 76 663 92 669 107 c 677 125 673 141 668 160 c 725 334 m 758 332 734 253 701 250 c 501 325 m 475 316 476 309 473 302 c 465 282 482 263 499 257 c 552 236 615 253 689 253 c 701 253 713 236 713 218 c 712 194 702 168 678 161 c 671 159 663 160 655 160 c 591 158 516 156 479 168 c 461 173 453 191 453 210 c 453 224 456 235 466 244 c 476 253 490 252 503 255 c 459 84 m 447 96 435 106 435 123 c 435 136 440 145 447 155 c 453 163 462 168 469 173 c 110 293 m 173 318 300 421 435 415 c 609 407 852 416 885 411 c 898 409 924 411 930 380 c 942 316 828 339 742 334 c 731 334 730 335 725 335 c 701 336 685 336 660 336 c{S}}put Encoding 98 /b put CD /b{5 setlinewidth 1000 0 -12 66 930 421 s 500 415 m 352 406 252 349 268 319 c 275 306 316 287 347 296 c 360 300 464 340 492 332 c 565 309 595 213 660 209 c 930 310 m 822 310 l 822 114 l 930 114 l 930 310 l 888 161 m 888 134 l 864 134 l 864 161 l 888 161 l 883 155 m 883 140 l 868 140 l 868 155 l 883 155 l 820 133 m 704 113 630 66 520 80 c 433 91 380 69 296 76 c 285 76 267 92 261 107 c 253 125 257 141 262 160 c 205 334 m 172 332 196 253 229 250 c 429 325 m 455 316 454 309 457 302 c 465 282 448 263 431 257 c 378 236 315 253 241 253 c 229 253 217 236 217 218 c 218 194 228 168 252 161 c 259 159 267 160 275 160 c 339 158 414 156 451 168 c 469 173 477 191 477 210 c 477 224 474 235 464 244 c 454 253 440 252 427 255 c 471 84 m 483 96 495 106 495 123 c 495 136 490 145 483 155 c 477 163 468 168 461 173 c 820 293 m 757 318 630 421 495 415 c 321 407 78 416 45 411 c 32 409 6 411 0 380 c -12 316 102 339 188 334 c 199 334 200 335 205 335 c 229 336 245 336 270 336 c{S}}put Encoding 99 /c put CD /c{710 0 0 0 700 700 s 33 setlinewidth 335 23 m 335 325 302 -90 270 arc {S}}put Encoding 100 /d put CD /d{590 0 134 158 477 500 s 300 160 m 208 162 134 238 135 330 c 136 423 212 500 305 500 c 397 500 473 427 475 335 c 477 239 396 158 300 160 c{fill}}put Encoding 101 /e put CD /e { % produces the VU symbol 760 0 0 0 750 750 s 267 267 scale 0 setlinejoin .045 setlinewidth 0 setlinecap 3 setmiterlimit newpath 0 0 moveto 0 2.8 rlineto 0.38 0 rlineto 0 -2.3 rlineto 0.02 0 rlineto 0.67 2.3 rlineto 0.38 0 rlineto -0.83 -2.8 rlineto closepath 1.61 2.8 moveto 0.38 0 rlineto -0.687 -2.32 rlineto -.03 -.1 -0.03 -0.1 0 -0.1 rcurveto 1.027 0 rlineto 0 2.42 rlineto 0.38 0 rlineto currentpoint pop 0 % x 0 2.0 0 0.28 arcto 4 {pop} repeat 0.78 0 1.61 2.8 0.15 arcto 4 {pop} repeat closepath {S}} put /BuildChar{altRTD /BuildChar get exec}def end altRTD begin /BuildChar{altRTD begin /char exch def /fontdict exch def save /charname fontdict /Encoding get char get def /clw { 37 0 mm pop setlinewidth}bind def fontdict /StrokeWidth get setlinewidth 0 setlinecap 0 setlinejoin fontdict /CD get dup charname known {charname}{/.notdef}ifelse get newpath exec fontdict /PaintType get 0 eq{exec}{pop S}ifelse restore end}def end systemdict /currentpacking known{F_Troff /SavePacking get setpacking}if /Troff F_Troff definefont pop /Y1{/Troff FF}def %%EndProlog %%Page: 1 1 BP /slant 0 def /height 0 def 858 V 12 B 936(Command:)S 1584(as)S 1721(\261)S 1811(assembler)S 1272 V (AS\320ASSEMBLER)1019 936 A 1985([IBM])S 1722 V 12 R 1116(This)S 1370(document)S 1885(describes)S 2375(the)S (language)436 2562 A (accepted)424 3038 A 3502(by)S 3662(the)S (80386)300 3850 A 4190(assembler)S 4715(that)S 4937(is)S 1860 V 936(part)S 1159(of)S 1294(the)S 1476(Amsterdam)S 2076(Compiler)S 2567(Kit.)S 2816(Note)S 3085(that)S 3300(only)S 3547(the)S 3728(syntax)S 4076(is)S 4190(described,)S 4717(only)S 4964(a)S 1998 V 936(few)S (386)180 1149 A 1359(instructions)S 1954(are)S 2133(shown)S 2478(as)S 2609(examples.)S 2274 V 12 B 936(Tokens,)S 1371(Numbers,)S 1909(Character)S 2471(Constants,)S 3049(and)S 3273(Strings)S 2586 V 12 R 1116(The)S 1337(syntax)S 1685(of)S 1819(numbers)S 2268(is)S 2382(the)S 2563(same)S 2845(as)S 2979(in)S 3106(C.)S 3280(The)S 3502(constants)S 3986(32,)S (040,)210 4170 A 4414(and)S (0x20)240 4622 A 4896(all)S 2724 V 936(represent)S 1417(the)S 1601(same)S 1886(number,)S 2321(but)S 2511(are)S (written)345 2695 A 3075(in)S 3204(decimal,)S 3653(octal,)S 3954(and)S 4163(hex,)S 4402(respectively.)S 2862 V 936(The)S 1162(rules)S 1436(for)S 1616(character)S 2100(constants)S 2588(and)S 2800(strings)S 3161(are)S 3348(also)S 3581(the)S 3768(same)S 4056(as)S 4196(in)S 4329(C.)S 4508(For)S 4715(exam-)S 3000 V 936(ple,)S 12 Y 1163(\242)S 12 R 1193(a)S 12 Y 1247(\242)S 12 R 1326(is)S 1456(a)S 1559(character)S 2054(constant.)S 2566(A)S 2703(typical)S 3081(string)S 3405(is)S 3534("string".)S 4016(Expressions)S 4648(may)S 4904(be)S 3138 V 936(formed)S 1317(with)S 1564(C)S 1675(operators,)S 2187(but)S 2372(must)S 2638(use)S 2830([)S 2902(and)S 3107(])S 3179(for)S 3352(parentheses.)S 4009(\(Normal)S 4453(parentheses)S 3276 V 936(are)S 1115(claimed)S 1529(by)S 1679(the)S 1857(operand)S 2276(syntax.\))S 3552 V 12 B 936(Symbols)S 3864 V 12 R 1116(Symbols)S 1571(contain)S 1960(letters)S 2291(and)S 2498(digits,)S 2831(as)S 2966(well)S 3210(as)S 3345(three)S 3622(special)S 3993(characters:)S 4554(dot,)S (tilde,)246 4772 A 4002 V 936(and)S (underscore.)561 1140 A 1761(The)S 1979(\256rst)S 2198(character)S 2674(may)S 2912(not)S 3096(be)S 3240(a)S 3324(digit)S 3576(or)S (tilde.)246 3707 A 4176 V 1116(The)S 1334(names)S 1673(of)S 1804(the)S (80386)300 1982 A 2312(registers)S 2754(are)S 2933(reserved.)S 3434(These)S 3753(are:)S 4383 V 1026(al,)S 1174(bl,)S 1328(cl,)S 1476(dl)S 4521 V 1026(ah,)S 1200(bh,)S 1380(ch,)S 1554(dh)S 4659 V 1026(ax,)S 1200(bx,)S 1380(cx,)S 1554(dx,)S 1734(eax,)S 1962(ebx,)S 2196(ecx,)S 2424(edx)S 4797 V 1026(si,)S 1167(di,)S 1321(bp,)S 1501(sp,)S 1668(esi,)S 1863(edi,)S 2071(ebp,)S 2305(esp)S 4935 V 1026(cs,)S 1187(ds,)S 1354(ss,)S 1508(es,)S 1669(fs,)S 1817(gs)S 5142 V 936(The)S 1166(xx)S 1328(and)S 1544(exx)S 1760(variants)S 2186(of)S 2329(the)S 2519(eight)S 2803(general)S 3202(registers)S 3657(are)S 3849(treated)S 4223(as)S (synonyms)488 4367 A 4898(by)S 5280 V 936(the)S 1132(assembler.)S 1725(Normally)S 2238("ax")S 2498(is)S 2627(the)S 2823(16-bit)S 3160(low)S 3390(half)S 3627(of)S 3776(the)S 3972(32-bit)S 4309("eax")S 4623(register.)S 5418 V 936(The)S 1162(assembler)S 1685(determines)S 2255(if)S 2368(a)S 2460(16)S 2619(or)S 2759(32)S 2918(bit)S 3085(operation)S 3581(is)S 3701(meant)S 4036(solely)S 4364(by)S (looking)368 4523 A 4930(at)S 5556 V 936(the)S 1116(instruction)S 1666(or)S 1799(the)S 1979(instruction)S 2529(pre\256xes.)S 3004(It)S 3111(is)S 3224(however)S 3672(best)S 3898(to)S 4023(use)S 4215(the)S 4394(proper)S 4741(regis-)S 5694 V 936(ters)S 1142(when)S (writing)351 1434 A 1815(assembly)S 2295(to)S 2419(not)S 2603(confuse)S 3009(those)S 3294(who)S 3532(read)S 3771(the)S 3949(code.)S 5901 V 936(The)S 1164(last)S (group)281 1373 A 1694(of)S 1835(6)S 1935(segment)S 2378(registers)S 2830(are)S 3019(used)S 3280(for)S 3462(selector)S 3880(+)S 3988(offset)S 4305(mode)S 4614(address-)S 6039 V 936(ing,)S 1150(in)S 1274(which)S 1600(the)S 1778(effective)S 2234(address)S 2627(is)S 2738(at)S 2856(a)S 2940(given)S 3238(offset)S 3545(in)S 3669(one)S 3873(of)S 4004(the)S 4182(6)S 4272(segments.)S 6213 V 1116(Names)S 1484(of)S 1616(instructions)S 2212(and)S (pseudo-ops)549 2417 A 2997(are)S 3177(not)S 3362(reserved.)S 3835(Alphabetic)S 4399(characters)S 4924(in)S 6351 V 936(opcodes)S 1361(and)S (pseudo-ops)549 1565 A 2144(must)S 2409(be)S 2553(in)S 2677(lower)S 2984(case.)S 8427 V EP %%Page: 2 2 BP /slant 0 def /height 0 def 1130 V 12 B 936(2)S 1380 V 936(Separators)S 1692 V 12 R 1116(Commas,)S 1607(blanks,)S 1984(and)S 2190(tabs)S 2417(are)S 2598(separators)S 3123(and)S 3330(can)S 3531(be)S 3678(interspersed)S 4297(freely)S 4614(between)S 1830 V 936(tokens,)S 1311(but)S 1495(not)S 1679(within)S 2019(tokens.)S 2424(Commas)S 2883(are)S 3062(only)S 3306(legal)S 3572(between)S 4006(operands.)S 2106 V 12 B 936(Comments)S 2418 V 12 R 1116(The)S 1334(comment)S 1814(character)S 2290(is)S 2401(`)S (`!')123 2432 A 2545('.)S 2646(The)S 2864(rest)S 3070(of)S 3201(the)S 3379(line)S 3591(is)S (ignored.)399 3702 A 2694 V 12 B 936(Opcodes)S 3006 V 12 R 1116(The)S 1339(opcodes)S 1769(are)S 1953(listed)S 2251(below.)S 2642(Notes:)S 2994(\(1\))S 3172(Different)S 3655(names)S 4000(for)S 4178(the)S 4362(same)S 4647(instruc-)S 3144 V 936(tion)S 1181(are)S 1387(separated)S 1902(by)S 2079(`)S 2110(`/')S 2216('.)S 2374(\(2\))S 2573(Square)S 2966(brackets)S (\([]\))164 3426 A 3646(indicate)S 4086(that)S 4324(0)S 4440(or)S 4597(1)S 4713(of)S 4870(the)S 3282 V 936(enclosed)S 1391(characters)S 1917(can)S 2118(be)S 2265(included.)S 2774(\(3\))S 2949(Curly)S 3257(brackets)S 3694(\({}\))S 3925(work)S 4207(similarly,)S 4702(except)S 3420 V 936(that)S 1152(one)S 1359(of)S 1493(the)S 1674(enclosed)S 2130(characters)S 12 I 2656(must)S 12 R 2918(be)S 3065(included.)S 3574(Thus)S 3848(square)S 4197(brackets)S 4634(indicate)S 3558 V 936(an)S 1080(option,)S 1448(whereas)S 1876(curly)S 2155(brackets)S 2589(indicate)S 3003(that)S 3215(a)S 3299(choice)S 3645(must)S 3910(be)S 4054(made.)S 3834 V 12 B 936(Data)S 1215(Transfer)S 4041 V 12 R 1116(mov[b])S 1800(dest,)S 2055(source)S 3096(!)S 3167(Move)S 3478(word/byte)S 3999(from)S 4265(source)S 4611(to)S 4735(dest)S 4179 V (pop)180 1116 A 1800(dest)S 3096(!)S 3167(Pop)S 3384(stack)S 4317 V 1116(push)S 1800(source)S 3096(!)S 3167(Push)S 3431(stack)S 4455 V 1116(xchg[b])S (op1,)210 1800 A (op2)180 2040 A 3096(!)S 3167(Exchange)S 3673(word/byte)S 4593 V 1116(xlat)S 3096(!)S 3167(Translate)S 4731 V (o16)180 1116 A 3096(!)S 3167(Operate)S 3582(on)S 3732(a)S 3816(16)S 3966(bit)S 4124(object)S 4450(instead)S 4823(of)S 4954(32)S 5104(bit)S 5007 V 12 B (Input/Output)700 936 A 5214 V 12 R 1116(in[b])S 1800(source)S 3096(!)S (Input)255 3167 A 3452(from)S 3718(source)S 4064(I/O)S 4257(port)S 5352 V 1116(in[b])S 3096(!)S (Input)255 3167 A 3452(from)S 3718(DX)S 3924(I/O)S 4117(port)S 5490 V 1116(out[b])S 1800(dest)S 3096(!)S 3167(Output)S 3533(to)S 3657(dest)S 3882(I/O)S 4075(port)S 5628 V 1116(out[b])S 3096(!)S 3167(Output)S 3533(to)S 3657(DX)S 3863(I/O)S 4056(port)S 5904 V 12 B 936(Address)S 1390(Object)S 6111 V 12 R 1116(lds)S 1800(reg,source)S 3096(!)S 3167(Load)S 3445(reg)S 3630(and)S 3834(DS)S 4019(from)S 4285(source)S 6249 V 1116(les)S 1800(reg,source)S 3096(!)S 3167(Load)S 3445(reg)S 3630(and)S 3834(ES)S 4005(from)S 4271(source)S 6387 V 1116(lea)S 1800(reg,source)S 3096(!)S 3167(Load)S 3445(effect)S 3753(address)S 4146(of)S 4277(source)S 4623(to)S 4747(reg)S 4932(and)S 5136(DS)S 6525 V 1116({cdsefg}seg)S 3096(!)S 3167(Specify)S 3567(seg)S 3758(register)S 4153(for)S 4325(next)S 4563(instruction)S 6663 V 1116(a16)S 3096(!)S 3167(Use)S 3386(16)S 3536(bit)S 3694(addressing)S 4241(mode)S 4539(instead)S 4912(of)S 5043(32)S 5193(bit)S 6939 V 12 B 936(Flag)S 1194(Transfer)S 7146 V 12 R 1116(lahf)S 3096(!)S 3167(Load)S 3445(AH)S 3651(from)S 3917(\257ag)S 4128(register)S 8427 V EP %%Page: 3 3 BP /slant 0 def /height 0 def 1130 V 10 R 936(SEC.)S 1196(.1)S 2424(AS\320ASSEMBLER)S 3272([IBM])S 12 B 4958(3)S 1380 V 12 R (popf)221 1116 A 3096(!)S 3167(Pop)S 3384(\257ags)S 1518 V 1116(pushf)S 3096(!)S 3167(Push)S 3431(\257ags)S 1656 V 1116(sahf)S 3096(!)S 3167(Store)S 3453(AH)S 3659(in)S 3783(\257ag)S 3994(register)S 1932 V 12 B 936(Addition)S 2139 V 12 R (aaa)162 1116 A 3096(!)S 3167(Adjust)S 3520(result)S 3820(of)S 3951(BCD)S (addition)396 4229 A 2277 V 1116(add[b])S 1800(dest,source)S 3096(!)S 3167(Add)S 2415 V 1116(adc[b])S 1800(dest,source)S 3096(!)S 3167(Add)S 3405(with)S 3651(carry)S 2553 V 1116(daa)S 3096(!)S 3167(Decimal)S 3609(Adjust)S 3962(after)S (addition)396 4216 A 2691 V 1116(inc[b])S 1800(dest)S 3096(!)S 3167(Increment)S 3689(by)S 3839(1)S 2967 V 12 B (Subtraction)612 936 A 3174 V 12 R 1116(aas)S 3096(!)S 3167(Adjust)S 3520(result)S 3820(of)S 3951(BCD)S 4229(subtraction)S 3312 V 1116(sub[b])S 1800(dest,source)S 3096(!)S 3167(Subtract)S 3450 V 1116(sbb[b])S 1800(dest,source)S 3096(!)S 3167(Subtract)S 3601(with)S 3847(borrow)S 4227(from)S 4493(dest)S 3588 V 1116(das)S 3096(!)S 3167(Decimal)S 3609(adjust)S 3928(after)S 4182(subtraction)S 3726 V 1116(dec[b])S 1800(dest)S 3096(!)S 3167(Decrement)S 3730(by)S 3880(one)S 3864 V 1116(neg[b])S 1800(dest)S 3096(!)S 3167(Negate)S 4002 V 1116(cmp[b])S 1800(dest,source)S 3096(!)S 3167(Compare)S 4278 V 12 B 936(Multiplication)S 4485 V 12 R 1116(aam)S 3096(!)S 3167(Adjust)S 3520(result)S 3820(of)S 3951(BCD)S (multiply)410 4229 A 4623 V 1116(imul[b])S 1800(source)S 3096(!)S 3167(Signed)S (multiply)410 3532 A 4761 V 1116(mul[b])S 1800(source)S 3096(!)S 3167(Unsigned)S (multiply)410 3660 A 5037 V 12 B 936(Division)S 5244 V 12 R 1116(aad)S 3096(!)S 3167(Adjust)S 3520(AX)S 3726(for)S 3898(BCD)S 4176(division)S 5382 V (o16)180 1116 A 1326(cbw)S 3096(!)S 3167(Sign)S 3418(extend)S 3770(AL)S 3962(into)S 4180(AH)S 5520 V (o16)180 1116 A 1326(cwd)S 3096(!)S 3167(Sign)S 3418(extend)S 3770(AX)S 3976(into)S 4194(DX)S 5658 V 1116(cwde)S 3096(!)S 3167(Sign)S 3418(extend)S 3770(AX)S 3976(into)S 4194(EAX)S 5796 V 1116(cdq)S 3096(!)S 3167(Sign)S 3418(extend)S 3770(EAX)S 4050(into)S 4268(EDX)S 5934 V 1116(idiv[b])S 1800(source)S 3096(!)S 3167(Signed)S 3532(divide)S 6072 V 1116(div[b])S 1800(source)S 3096(!)S 3167(Unsigned)S 3660(divide)S 6348 V 12 B 936(Logical)S 6555 V 12 R 1116(and[b])S 1800(dest,source)S 3096(!)S 3167(Logical)S 3567(and)S 6693 V 1116(not[b])S 1800(dest)S 3096(!)S 3167(Logical)S 3567(not)S 6831 V 1116(or[b])S 1800(dest,source)S 3096(!)S 3167(Logical)S 3567(inclusive)S 4034(or)S 6969 V 1116(test[b])S 1800(dest,source)S 3096(!)S 3167(Logical)S 3567(test)S 7107 V 1116(xor[b])S 1800(dest,source)S 3096(!)S 3167(Logical)S 3567(exclusive)S 4054(or)S 8427 V EP %%Page: 4 4 BP /slant 0 def /height 0 def 1130 V 12 B 936(4)S 1380 V 936(Shift)S 1587 V 12 R 1116(sal[b]/shl[b])S 1800(dest,CL)S 3096(!)S 3167(Shift)S 3433(logical)S 3793(left)S 1725 V 1116(sar[b])S 1800(dest,CL)S 3096(!)S 3167(Shift)S 3433(arithmetic)S 3956(right)S 1863 V 1116(shr[b])S 1800(dest,CL)S 3096(!)S 3167(Shift)S 3433(logical)S 3793(right)S 2139 V 12 B 936(Rotate)S 2346 V 12 R 1116(rcl[b])S 1800(dest,CL)S 3096(!)S 3167(Rotate)S 3513(left,)S 3736(with)S 3982(carry)S 2484 V 1116(rcr[b])S 1800(dest,CL)S 3096(!)S 3167(Rotate)S 3513(right,)S 3802(with)S 4048(carry)S 2622 V 1116(rol[b])S 1800(dest,CL)S 3096(!)S 3167(Rotate)S 3513(left)S 2760 V 1116(ror[b])S 1800(dest,CL)S 3096(!)S 3167(Rotate)S 3513(right)S 3036 V 12 B 936(String)S 1289(Manipulation)S 3243 V 12 R 1116(cmps[b])S 3096(!)S 3167(Compare)S 3640(string)S 3946(element)S 4360(ds:esi)S 4666(with)S 4912(es:edi)S 3381 V 1116(lods[b])S 3096(!)S 3167(Load)S 3445(from)S 3711(ds:esi)S 4017(into)S 4235(AL,)S 4457(AX,)S 4693(or)S 4824(EAX)S 3519 V 1116(movs[b])S 3096(!)S 3167(Move)S 3478(from)S 3744(ds:esi)S 4050(to)S 4174(es:edi)S 3657 V 1116(rep)S 3096(!)S 3167(Repeat)S 3533(next)S 3771(instruction)S (until)222 4319 A 4571(ECX=0)S 3795 V 1116(repe/repz)S 3096(!)S 3167(Repeat)S 3533(next)S 3771(instruction)S (until)222 4319 A 4571(ECX=0)S 4971(and)S 5175(ZF=1)S 3933 V 1116(repne/repnz)S 3096(!)S 3167(Repeat)S 3533(next)S 3771(instruction)S (until)222 4319 A 4571(ECX!=0)S 5012(and)S 5216(ZF=0)S 4071 V 1116(scas[b])S 3096(!)S 3167(Compare)S 3640(ds:esi)S 3946(with)S 4192(AL/AX/EAX)S 4209 V 1116(stos[b])S 3096(!)S 3167(Store)S 3453(AL/AX/EAX)S 4139(in)S 4263(es:edi)S 4485 V 12 B 936(Control)S 1370(Transfer)S 4659 V 12 I 1116(As)S 12 R (accepts)357 1275 A 1671(a)S 1764(number)S 2172(of)S 2312(special)S 2688(jump)S 2975(opcodes)S 3409(that)S 3630(can)S 3837(assemble)S 4320(to)S 4453(instructions)S 4797 V 936(with)S 1202(either)S 1529(a)S 1633(byte)S (displacement,)669 1891 A 2610(which)S 2956(can)S 3174(only)S (reach)263 3438 A 3751(to)S 3895(targets)S 4269(within)S 12 Y 4629(-)S 12 R (126)180 4695 A 4924(to)S 4935 V (+129)248 936 A 1219(bytes)S 1509(of)S 1645(the)S 1828(branch,)S 2222(or)S 2358(an)S 2507(instruction)S 3060(with)S 3311(a)S 3400(32-bit)S (displacement.)669 3724 A 4458(The)S 4681(assem-)S 5073 V 936(bler)S 1155(automatically)S (chooses)382 1845 A 2257(a)S 2341(byte)S 2579(or)S 2710(word)S (displacement)639 2989 A 3658(instruction.)S 5247 V 1116(The)S 1353(English)S 1771(translation)S 2332(of)S 2482(the)S 2679(opcodes)S (should)321 3124 A 3495(be)S (obvious,)411 3659 A 4120(with)S 4386(`)S 4417(`l\(ess\)')S 4753(')S 4844(and)S 5385 V 936(`)S (`g\(reater\)')502 967 A 1459(')S 1583(for)S 1808(signed)S 2206(comparisions,)S 2964(and)S 3221(`)S 3252(`b\(elow\)')S 3702(')S 3826(and)S 4083(`)S (`a\(bove\)*\(CQ)680 4114 A 4876(for)S 5523 V 936(unsigned)S 1408(comparisions.)S 2150(There)S 2470(are)S 2656(lots)S 2868(of)S (synonyms)488 3006 A 3531(to)S 3662(allow)S (you)180 3969 A 4187(to)S 4319(write)S 4608("jump)S 4943(if)S 5661 V 936(not)S 1120(that")S 1381(instead)S 1754(of)S 1885("jump)S 2212(if)S 2317(this".)S 5835 V 1116(The)S 1344(`)S 1375(`call')S 1623(',)S 1734(`)S 1765(`jmp')S 2025(',)S 2136(and)S 2350(`)S 2381(`ret')S 2582(')S 2663(instructions)S 3268(can)S 3476(be)S 3630(either)S 3947(intrasegment)S 4613(or)S 4754(inter-)S 5973 V 936(segment.)S 1429(The)S 1647(intersegment)S 2303(versions)S 2736(are)S 2915(indicated)S 3389(with)S 3635(the)S 3813(suf\256x)S 4118(`)S (`f')123 4149 A 4262('.)S 6249 V 12 B 936(Unconditional)S 6456 V 12 R (jmp[f])311 1116 A 1800(dest)S 3096(!)S 3167(jump)S 3445(to)S 3569(dest)S 3794(\(8)S 3925(or)S 4056(32-bit)S (displacement\))680 4375 A 6594 V (call[f])299 1116 A 1800(dest)S 3096(!)S 3167(call)S 3373(procedure)S 6732 V (ret[f])252 1116 A 3096(!)S 3167(return)S 3487(from)S 3753(procedure)S 7008 V 12 B 936(Conditional)S 8427 V EP %%Page: 5 5 BP /slant 0 def /height 0 def 1130 V 10 R 936(SEC.)S 1196(.1)S 2424(AS\320ASSEMBLER)S 3272([IBM])S 12 B 4958(5)S 1380 V 12 R 1116(ja/jnbe)S 3096(!)S 3167(if)S (above/not)476 3272 A 3778(below)S 4104(or)S 4235(equal)S 4527(\(unsigned\))S 1518 V 1116(jae/jnb/jnc)S 3096(!)S 3167(if)S (above)288 3272 A 3590(or)S 3721(equal/not)S 4201(below/not)S 4715(carry)S 4995(\(uns.\))S 1656 V 1116(jb/jnae/jc)S 3096(!)S 3167(if)S 3272(not)S (above)288 3456 A 3774(nor)S 3965(equal/below/carry)S 4871(\(unsigned\))S 1794 V 1116(jbe/jna)S 3096(!)S 3167(if)S 3272(below)S 3598(or)S 3729(equal/not)S (above)288 4209 A 4527(\(unsigned\))S 1932 V 1116(jg/jnle)S 3096(!)S 3167(if)S 3272(greater/not)S 3828(less)S 4040(nor)S 4231(equal)S 4523(\(signed\))S 2070 V 1116(jge/jnl)S 3096(!)S 3167(if)S 3272(greater)S 3640(or)S 3771(equal/not)S 4251(less)S 4463(\(signed\))S 2208 V (jl/jnqe)310 1116 A 3096(!)S 3167(if)S 3272(less/not)S 3672(greater)S 4040(nor)S 4231(equal)S 4523(\(signed\))S 2346 V 1116(jle/jgl)S 3096(!)S 3167(if)S 3272(less)S 3484(or)S 3615(equal/not)S 4095(greater)S 4463(\(signed\))S 2484 V 1116(je/jz)S 3096(!)S 3167(if)S 3272(equal/zero)S 2622 V 1116(jne/jnz)S 3096(!)S 3167(if)S 3272(not)S 3456(equal/not)S 3936(zero)S 2760 V 1116(jno)S 3096(!)S 3167(if)S 3272(over\257ow)S 3732(not)S 3916(set)S 2898 V 1116(jo)S 3096(!)S 3167(if)S 3272(over\257ow)S 3732(set)S 3036 V 1116(jnp/jpo)S 3096(!)S 3167(if)S 3272(parity)S 3585(not)S 3769(set/parity)S (odd)180 4251 A 3174 V 1116(jp/jpe)S 3096(!)S 3167(if)S 3272(parity)S 3585(set/parity)S 4067(even)S 3312 V 1116(jns)S 3096(!)S 3167(if)S 3272(sign)S 3503(not)S 3687(set)S 3450 V 1116(js)S 3096(!)S 3167(if)S 3272(sign)S 3503(set)S 3726 V 12 B 936(Iteration)S 1424(Control)S 3933 V 12 R 1116(jcxz)S 1800(dest)S 3096(!)S 3167(jump)S 3445(if)S 3550(ECX)S 3822(=)S 3920(0)S 4071 V (loop)214 1116 A 1800(dest)S 3096(!)S 3167(Decrement)S 3730(ECX)S 4002(and)S 4206(jump)S 4484(if)S 4589(CX)S 4787(!=)S 4926(0)S 4209 V (loope/loopz)570 1116 A 1800(dest)S 3096(!)S 3167(Decrement)S 3730(ECX)S 4002(and)S 4206(jump)S 4484(if)S 4589(ECX)S 4861(=)S 4959(0)S 5049(and)S 5253(ZF)S 5424(=)S 5522(1)S 4347 V (loopne/loopnz)690 1116 A 3096(dest!)S 3362(Decrement)S 3925(ECX)S 4197(and)S 4401(jump)S 4679(if)S 4784(ECX)S 5056(!=)S 5195(0)S 5285(and)S 5489(ZF)S 5660(=)S 5758(0)S 4623 V 12 B (Interrupt)492 936 A 4830 V 12 R 1116(int)S 1800(n)S 3096(!)S 3167(Software)S 3636(interrupt)S 4084(n)S 4968 V 1116(into)S 3096(!)S 3167(Interrupt)S 3622(if)S 3727(over\257ow)S 4187(set)S 5106 V 1116(iretd)S 3096(!)S 3167(Return)S 3526(from)S 3792(interrupt)S 5382 V 12 B 936(Flag)S 1194(Operations)S 5589 V 12 R 1116(clc)S 3096(!)S 3167(Clear)S 3460(carry)S 3740(\257ag)S 5727 V 1116(cld)S 3096(!)S 3167(Clear)S 3460(direction)S 3921(\257ag)S 5865 V 1116(cli)S 3096(!)S 3167(Clear)S 3460(interrupt)S 3908(enable)S 4254(\257ag)S 6003 V 1116(cmc)S 3096(!)S 3167(Complement)S 3821(carry)S 4101(\257ag)S 6141 V 1116(stc)S 3096(!)S 3167(Set)S 3352(carry)S 3632(\257ag)S 6279 V 1116(std)S 3096(!)S 3167(Set)S 3352(direction)S 3813(\257ag)S 6417 V 1116(sti)S 3096(!)S 3167(Set)S 3352(interrupt)S 3800(enable)S 4146(\257ag)S 8427 V EP %%Page: 6 6 BP /slant 0 def /height 0 def 1130 V 12 B 936(6)S 1380 V 936(Location)S 1422(Counter)S 1692 V 12 R 1116(The)S 1335(special)S 1703(symbol)S 2089(`)S 2120(`.')S 2222(')S 2294(is)S 2406(the)S 2585(location)S (counter)363 3007 A 3402(and)S 3608(its)S 3755(value)S 4049(is)S 4162(the)S 4342(address)S 4737(of)S 4870(the)S 1830 V 936(\256rst)S 1161(byte)S 1405(of)S 1541(the)S 1724(instruction)S 2277(in)S 2406(which)S 2737(the)S 2920(symbol)S 3310(appears)S 3715(and)S 3924(can)S 4127(be)S 4276(used)S 4532(in)S 4661(expres-)S 1968 V 936(sions.)S 2244 V 12 B 936(Segments)S 2556 V 12 R 1116(There)S 1437(are)S 1624(four)S 1864(different)S 2321(assembly)S 2809(segments:)S 3331(text,)S 3581(rom,)S 3844(data)S 4084(and)S 4296(bss.)S 4548(Segments)S 2694 V 936(are)S 1120(declared)S 1566(and)S 1775(selected)S 2200(by)S 2354(the)S 12 I 2536(.sect)S 12 R (pseudo-op.)532 2789 A 3385(It)S 3494(is)S 3609(customary)S 4147(to)S 4275(declare)S 4660(all)S 4816(seg-)S 2832 V 936(ments)S 1255(at)S 1373(the)S 1551(top)S 1735(of)S 1866(an)S 2010(assembly)S 2490(\256le)S 2675(like)S 2887(this:)S 3039 V 1026(.sect)S 1275(.text;)S 1551(.sect)S 1800(.rom;)S 2089(.sect)S 2338(.data;)S 2634(.sect)S 2883(.bss)S 3246 V 936(The)S 1162(assembler)S (accepts)357 1685 A 2080(up)S 2238(to)S 2370(16)S 2528(different)S 2985(segments,)S 3503(but)S 10 R 3690(MINIX)S 12 R 4031(expects)S 4432(only)S 4684(four)S 4924(to)S 3384 V 936(be)S 1091(used.)S 1413(Anything)S 1910(can)S 2119(in)S 2254(principle)S 2725(be)S 2879(assembled)S 3423(into)S 3651(any)S 3865(segment,)S 4338(but)S 4532(the)S 10 R 4715(MINIX)S 3522 V 12 R 936(bss)S 1121(segment)S 1555(may)S 1794(only)S 2039(contain)S (uninitialized)606 2427 A 3065(data.)S 3359(Note)S 3627(that)S 3841(the)S 4021(`)S 4052(`.')S 4154(')S 4227(symbol)S 4614(refers)S 4924(to)S 3660 V 936(the)S 1114(location)S 1534(in)S 1658(the)S 1836(current)S 2210(segment.)S 3936 V 12 B 936(Labels)S 4248 V 12 R 1116(There)S 1445(are)S 1640(two)S 1868(types:)S 2203(name)S 2511(and)S 2731(numeric.)S 3234(Name)S 3571(labels)S 3901(consist)S 4284(of)S 4432(a)S 4533(name)S 4842(fol-)S 4386 V 936(lowed)S 1262(by)S 1412(a)S 1496(colon)S 1794(\(:\).)S 4560 V 1116(The)S 1340(numeric)S 1773(labels)S 2092(are)S 2277(single)S 2602(digits.)S 2967(The)S 3191(nearest)S 3571(0:)S 3701(label)S 3973(may)S 4217(be)S 4367(referenced)S 4917(as)S 4698 V 936(0f)S 1067(in)S 1191(the)S 1369(forward)S 1784(direction,)S 2275(or)S 2406(0b)S 2556(backwards.)S 4974 V 12 B 936(Statement)S 1492(Syntax)S 5286 V 12 R 1116(Each)S 1388(line)S 1600(consists)S 2013(of)S 2144(a)S 2228(single)S 2547(statement.)S 3102(Blank)S 3420(or)S 3551(comment)S 4031(lines)S 4290(are)S 4469(allowed.)S 5562 V 12 B 936(Instruction)S 1545(Statements)S 5874 V 12 R 1116(The)S 1334(most)S 1599(general)S 1986(form)S 2252(of)S 2383(an)S 2527(instruction)S 3075(is)S 6081 V 1026(label:)S 1326(opcode)S (operand1,)479 1704 A (operand2)449 2213 A 2782(!)S 2853(comment)S 6426 V 12 B 936(Expression)S 1536(Semantics)S 6738 V 12 R 1116(The)S 1350(following)S 1867(operators)S 2364(can)S 2578(be)S 2738(used:)S 3039(+)S 12 Y 3153(-)S 12 R 3265(*)S 3371(/)S 3452(&)S 3593(|)S 3664(\303)S 3752(\304)S 3840(<<)S 4023(\(shift)S 4327(left\))S 4578(>>)S 4761(\(shift)S 6876 V 936(right\))S 12 Y 1243(-)S 12 R 1346(\(unary)S 1699(minus\).)S 2132(32-bit)S 2458(integer)S 2832(arithmetic)S 3362(is)S 3480(used.)S 3767(Division)S (produces)436 4220 A 4692(a)S 4782(trun-)S 7014 V 936(cated)S (quotient.)426 1222 A 8427 V EP %%Page: 7 7 BP /slant 0 def /height 0 def 1130 V 10 R 936(SEC.)S 1196(.1)S 2424(AS\320ASSEMBLER)S 3272([IBM])S 12 B 4958(7)S 1380 V 936(Addressing)S 1551(Modes)S 1692 V 12 R 1116(Below)S 1469(is)S 1587(a)S 1678(list)S 1864(of)S 2002(the)S 2187(addressing)S 2741(modes)S (supported.)506 3093 A 3666(Each)S 3946(one)S 4158(is)S 4277(followed)S 4746(by)S 4904(an)S 1830 V 936(example.)S 2037 V 1116(constant)S 3096(mov)S 3340(eax,)S (123456)360 3568 A 2175 V 1116(direct)S (access)310 1423 A 3096(mov)S 3340(eax,)S (\(counter\))445 3568 A 2313 V 1116(register)S 3096(mov)S 3340(eax,)S 3568(esi)S 2451 V 1116(indirect)S 3096(mov)S 3340(eax,)S 3568(\(esi\))S 2589 V 1116(base)S 1361(+)S 1459(disp.)S 3096(mov)S 3340(eax,)S 3568(6\(ebp\))S 2727 V 1116(scaled)S 1449(index)S 3096(mov)S 3340(eax,)S 3568(\(4*esi\))S 2865 V 1116(base)S 1361(+)S 1459(index)S 3096(mov)S 3340(eax,)S 3568(\(ebp\)\(2*esi\))S 3003 V 1116(base)S 1361(+)S 1459(index)S 1757(+)S 1855(disp.)S 3096(mov)S 3340(eax,)S 3568(10\(edi\)\(1*esi\))S 3210 V 936(Any)S 1174(of)S 1305(the)S 1483(constants)S 1963(or)S 2095(symbols)S 2528(may)S 2767(be)S (replacement)593 2912 A 3536(by)S 3687(expressions.)S 4342(Direct)S (access,)340 4678 A 3348 V 936(constants)S 1429(and)S (displacements)686 1646 A 2375(may)S 2626(be)S 2783(any)S 3000(type)S 3251(of)S 3395(expression.)S 4015(A)S 4146(scaled)S 4492(index)S 4802(with)S 3486 V 936(scale)S 1209(1)S 1299(may)S 1537(be)S (written)345 1681 A (without)370 2056 A 2456(the)S 2634(`)S 2665(`1*')S 2857('.)S 3762 V 12 B 936(Call)S 1182(and)S 1406(Jmp)S 4074 V 12 R 1116(The)S 1338(`)S 1369(`call')S 1617(')S 1692(and)S 1900(`)S 1931(`jmp')S 2191(')S 2266(instructions)S 2865(can)S 3067(be)S 3215(interpreted)S 3775(as)S 3910(a)S 3998(load)S 4241(into)S 4464(the)S 4647(instruc-)S 4212 V 936(tion)S 1154(pointer.)S 4419 V 1116(call)S 12 Y1 1322(3)S 12 R 1382(routine)S 3096(!)S 3167(Direct,)S 3532(intrasegment)S 4557 V 1116(call)S 1322(\(subloc\))S 3096(!)S 3167(Indirect,)S 3605(intrasegment)S 4695 V 1116(call)S 1322(6\(ebp\))S 3096(!)S 3167(Indirect,)S 3605(intrasegment)S 4833 V 1116(call)S 1322(ebx)S 3096(!)S 3167(Direct,)S 3532(intrasegment)S 4971 V 1116(call)S 1322(\(ebx\))S 3096(!)S 3167(Indirect,)S 3605(intrasegment)S 5109 V 1116(callf)S 1363(\(subloc\))S 3096(!)S 3167(Indirect,)S 3605(intersegment)S 5247 V 1116(callf)S 1363(seg:offs)S 3096(!)S 3167(Direct,)S 3532(intersegment)S 5730 V 12 B 936(Symbol)S 1355(Assigment)S 6180 V 12 R 1116(Symbols)S 1572(can)S 1774(acquire)S 2165(values)S 2508(in)S 2636(one)S 2844(of)S 2979(two)S 3195(ways.)S 3538(Using)S 3861(a)S 3950(symbol)S 4340(as)S 4476(a)S 4565(label)S 4836(sets)S 6318 V 936(it)S 1045(to)S 1180(`)S 1211(`.')S 1313(')S 1395(for)S 1578(the)S 1767(current)S 2152(segment)S 2596(with)S 2853(type)S 3101(relocatable.)S 3704(Alternative,)S 4321(a)S 4415(symbol)S 4810(may)S 6456 V 936(be)S 1080(given)S 1378(a)S 1462(name)S 1754(via)S 1932(an)S 2076(assignment)S 2650(of)S 2781(the)S 2959(form)S 6663 V 1026(symbol)S 1411(=)S 1509(expression)S 6870 V 936(in)S 1060(which)S 1386(the)S 1564(symbol)S 1949(is)S 2060(assigned)S 2506(the)S 2684(value)S 2976(and)S 3180(type)S 3418(of)S 3549(its)S 3694(arguments.)S 8427 V EP %%Page: 8 8 BP /slant 0 def /height 0 def 1130 V 12 B 936(8)S 1380 V 936(Storage)S 1362(Allocation)S 1830 V 12 R (Space)289 1116 A 1439(can)S 1641(be)S 1789(reserved)S 2234(for)S 2410(bytes,)S 2729(words,)S 3089(and)S (longs)261 3297 A 3593(using)S (pseudo-ops.)579 3889 A 4533(They)S 4816(take)S 1968 V 936(one)S 1148(or)S 1287(more)S 1574(operands,)S 2078(and)S 2290(for)S (each)222 2470 A 2730(generate)S 3179(a)S 3271(value)S 3571(whose)S 3918(size)S 4145(is)S 4264(a)S 4356(byte,)S 4631(word)S 4917(\(2)S 2106 V 936(bytes\))S 1262(or)S (long)214 1393 A 1637(\(4)S 1768(bytes\).)S 2154(For)S 2352(example:)S 2313 V 1116(.data1)S 1438(2,)S 1558(6)S 3096(!)S 3167(allocate)S 3575(2)S 3665(bytes)S (initialized)486 3950 A 4466(to)S 4590(2)S 4680(and)S 4884(6)S 2451 V 1116(.data2)S 1451(3,)S (0x10)240 1584 A 3122(!)S 3206(allocate)S 3628(2)S 3732(words)S (initialized)486 4072 A 4602(to)S 4740(3)S 4844(and)S 2589 V 936(16)S 2727 V 1116(.data4)S (010)180 1438 A 3096(!)S 3167(allocate)S 3575(a)S (longword)463 3659 A (initialized)486 4152 A 4668(to)S 4792(8)S 2865 V (.space)299 1116 A 1445(40)S 3096(!)S 3167(allocates)S 3622(40)S 3772(bytes)S 4057(of)S 4188(zeros)S 3072 V 936(allocates)S 1392(50)S 1543(\(decimal\))S 2040(bytes)S 2326(of)S 2458(storage,)S (initializing)526 2869 A 3426(the)S 3605(\256rst)S 3825(two)S 4038(bytes)S 4324(to)S 4450(2)S 4542(and)S 4748(6,)S 4870(the)S 3210 V 936(next)S 1189(two)S 1416(words)S 1757(to)S 1896(3)S 2001(and)S 2220(16,)S 2415(then)S 2668(one)S (longword)463 2887 A 3395(with)S 3656(value)S 3963(8)S (\(010)221 4068 A 4334(octal\),)S 4685(last)S 4898(40)S 3348 V 936(bytes)S 1221(of)S 1352(zeros.)S 3624 V 12 B 936(String)S 1289(Allocation)S 3936 V 12 R 1116(The)S (pseudo-ops)549 1360 A 12 I 1965(.ascii)S 12 R 2280(and)S 12 I 2510(.asciz)S 12 R 2838(take)S 3096(one)S 3326(string)S 3658(argument)S 4171(and)S 4402(generate)S 4870(the)S 4074 V 936(ASCII)S 1307(character)S 1807(codes)S 2136(for)S 2331(the)S 2532(letters)S 2883(in)S 3030(the)S 3231(string.)S 3590(The)S 3831(latter)S 4135(automatically)S 4848(ter-)S 4212 V 936(minates)S 1343(the)S 1521(string)S 1827(with)S 2073(a)S 2157(null)S 2375(\(0\))S 2547(byte.)S 2845(For)S 3043(example,)S 4419 V 1026(.ascii)S 1309("hello")S 4557 V 1026(.asciz)S 1329("world\\n")S 4902 V 12 B 936(Alignment)S 5214 V 12 R 1116(Sometimes)S 1686(it)S 1786(is)S (necessary)471 1899 A 2402(to)S 2528(force)S 2810(the)S 2990(next)S 3230(item)S 3478(to)S 3604(begin)S 3904(at)S 4024(a)S 4110(word,)S (longword)463 4421 A 4917(or)S 5352 V 936(even)S 1207(a)S 1304(16)S 1467(byte)S 1718(address)S (boundary.)485 2124 A 2682(The)S 12 I 2913(.align)S 12 R (pseudo-op)502 3234 A 3778(zero)S 4029(or)S 4172(more)S 4463(null)S 4693(byte)S 4943(if)S 5490 V 936(the)S 1114(current)S 1488(location)S 1908(is)S 2019(a)S (multiple)404 2103 A 2537(of)S 2668(the)S 2846(argument)S 3333(of)S 3464(.align.)S 5766 V 12 B 936(Segment)S 1410(Control)S 6078 V 12 R 1116(Every)S 1441(item)S 1693(assembled)S 2233(goes)S 2491(in)S 2622(one)S 2833(of)S 2971(the)S 3156(four)S 3395(segments:)S 3916(text,)S 4165(rom,)S 4427(data,)S 4696(or)S 4834(bss.)S 6216 V 936(By)S 1121(using)S 1427(the)S 12 I 1620(.sect)S 12 R (pseudo-op)502 1884 A 2430(with)S 2690(argument)S 12 I 3191(next)S 3437(items)S 3738(to)S 3876(go)S 4040(in)S 4178(a)S 4282(particular)S 4816(seg-)S 6354 V 936(ment.)S 8427 V EP %%Page: 9 9 BP /slant 0 def /height 0 def 1130 V 10 R 936(SEC.)S 1196(.1)S 2424(AS\320ASSEMBLER)S 3272([IBM])S 12 B 4958(9)S 1380 V 936(External)S 1416(Names)S 1692 V 12 R 1116(A)S 1257(symbol)S 1665(can)S 1886(be)S 2053(given)S 2374(global)S 2729(scope)S 3057(by)S 3230(including)S 3739(it)S 3860(in)S 4007(a)S 12 I 4114(.de\256ne)S 12 R (pseudo-op.)532 4486 A 1830 V (Multiple)417 936 A 1387(names)S 1730(may)S 1972(be)S 2120(listed,)S 2447(separate)S 2879(by)S 3033(commas.)S 3530(It)S 3638(must)S 3906(be)S 4053(used)S 4307(to)S (export)309 4434 A 4776(sym-)S 1968 V 936(bols)S 1173(de\256ned)S 1564(in)S 1695(the)S 1880(current)S 2261(program.)S 2768(Names)S 3142(not)S 3333(de\256ned)S 3725(in)S 3856(the)S 4041(current)S 4422(program)S 4869(are)S 2106 V 936(treated)S 1303(as)S ("unde\256ned)524 1440 A 2000(external")S 2476(automatically,)S (although)422 3202 A 3659(it)S 3762(is)S 3878(customary)S 4417(to)S 4546(make)S 4843(this)S 2244 V 936(explicit)S 1330(with)S 1576(the)S 12 I 1754(.extern)S 12 R (pseudo-op.)532 2117 A 2520 V 12 B 936(Common)S 2832 V 12 R 1116(The)S 12 I 1348(.comm)S 12 R (pseudo-op)502 1712 A 2258(declares)S 2700(storage)S 3094(that)S 3320(can)S 3532(be)S 3691(common)S 4158(to)S 4297(more)S 4591(than)S 4844(one)S 2970 V (module.)392 936 A 1402(There)S 1729(are)S 1922(two)S 2148(arguments:)S 2730(a)S 2828(name)S 3134(and)S 3352(an)S 3510(absolute)S 3957(expression)S 4518(giving)S 4870(the)S 3108 V 936(size)S 1171(in)S 1311(bytes)S 1612(of)S 1759(the)S 1953(area)S 2202(named)S 2570(by)S 2736(the)S 2930(symbol.)S 3361(The)S 3595(type)S 3850(of)S 3998(the)S 4193(symbol)S 4595(becomes)S 3246 V 936(external.)S 1419(The)S 1639(statement)S 2136(can)S 2336(appear)S 2690(in)S 2815(any)S 3020(segment.)S 3514(If)S (you)180 3627 A 3838(think)S 4117(this)S 4323(has)S 4515(something)S 3384 V 936(to)S 1060(do)S 1210(with)S 1456(FORTRAN,)S (you)180 2081 A 2291(are)S 2470(right.)S 3660 V 12 B 936(Examples)S 3972 V 12 R 1116(In)S 1271(the)S 1473(kernel)S 1830(directory,)S 2352(there)S 2649(are)S 2852(several)S 3250(assembly)S 3754(code)S 4037(\256les)S 4294(that)S 4531(are)S 4735(worth)S 4110 V 936(inspecting)S 1471(as)S 1610(examples.)S 2165(However,)S 2678(note)S 2923(that)S 3142(these)S 3428(\256les,)S 3697(are)S 3883(designed)S 4349(to)S 4480(\256rst)S 4706(be)S 4857(run)S 4248 V (through)375 936 A 1355(the)S 1547(C)S 1671(preprocessor.)S 2394(\(The)S 2668(very)S 2928(\256rst)S 3162(character)S 3653(is)S 3779(a)S 3878(#)S 3983(to)S 4122(signal)S 4456(this.\))S 4777(Thus)S 4386 V 936(they)S 1187(contain)S 1586(numerous)S 2104(constructs)S 2637(that)S 2861(are)S 3052(not)S 3248(pure)S 3505(assembler.)S 4092(For)S 4302(true)S 4533(assembler)S 4524 V 936(examples,)S 1455(compile)S 1877(any)S 2083(C)S 2195(program)S 2637(provided)S 3098(with)S 10 R 3341(MINIX)S 12 R 3676(using)S 3969(the)S 12 B 4149(\261S)S 12 R 4308(\257ag.)S 4581(This)S (will)190 4828 A 4662 V 936(result)S 1238(in)S 1364(an)S 1509(assembly)S (language)436 1990 A 2457(\256le)S 2643(with)S 2890(a)S 2975(suf\256x)S 3281(with)S 3528(the)S 3707(same)S 3987(name)S 4280(as)S 4412(the)S 4591(C)S 4702(source)S 4800 V 936(\256le,)S 1151(but)S 1335(ending)S 1693(with)S 1939(the)S 2117(.s)S 2224(suf\256x.)S 8427 V EP %%Trailer %%DocumentFonts: Times-Roman Times-Bold Times-Italic Symbol Troff %%Pages: 9