Download as pdf
Download as pdf
You are on page 1of 129
LENLAAAA LAAN RT ON ON tt 1 Assembly Language Programming and Organization of the IBM PC By Yu and Marut MANUAL SOLUTION CH.1 To cH.10 Written by: Eng. Muhammad Waseem LALA SIND AA SAAS AA IAAI DISSIDIA DID D AIA DAIS AA ASIST Assembly Language Programming Muhammad Waseem PERERA DEEER EDEL ERASER ARR RE BR A A Be te * 3 3 3 2 3 - 3 3 2 3 3 2 3 - 3 3 - 2 t > 3 3 3 3 t 2 3 * - t 3 3 - - 2 - 3 $ 3 3 3 3 3 - 3 2 - 2 $ - 3 3 3 2 t 2 2 3 2 3 t 3 - 2 3 + PENAL LAN AD ADDN NN tet ConrEenTs Preface Cha ch Ch3 Chg cee hes see ch chz ch.8 Cho Chao . Appendix A (How to run a program)... Appendix B ( Some usefill procedure). LALA S DISD I DADS D DDD DDD EDAD DSA SDD DDI REDDER DDD E RES, DEERE LANA LAS IAI DA SDA D DADA DAD DDSI DDD DADS DDIID DADA DD DDD DP DID Assembly Language Programming M LEREEERERIAESARRERREER EDR BRR Chapter One Microcomputer Systems a) a) 1111111100010001b OLOLOIONNIILI IIIb 0001000111011 101b b) a) 101 b) O101 GB) a) RAM b) ROM c) RAM d) ROM LPPTADN TREAT TEENA NEA NAA NATED EDAD ER ESE IRAE DETER PREPPED LPMTADN TREAD ADEE NERA AANA NADER DEPEND TEER ERD ERED ? $ : : z z 2 $ $ t : : z 2 = - = t ? 3 $ - z z = 2 $ t ? : $ 2 - $ 2 $ $ : t $ 2 z 2 : z 2 $ z : t 2 : z : 2 $ 2 3 : 2 - Chapter One (4) a) the microprocessor : brain of the computer , it controls the computer by executing programs stored in memory b) the buses: connect the different component to make processor communicate with memory and /O circuits. () a) EU (Execution Unit ) : execute instructions — because it contains the ALU. b) BIU (Bus Interface Unit ) facilitates communication between the EU and the memory or VO circuits , and useful for speed-up the processor by instruction prefetch . $ z = = : = : : : z : : z : = z z = : = = : z = = 3 : z : = (6) a) IP: contains the address of the next instruction to be executed by EU b) ALU : perform arithmetic & logic operation : ? : 3 3 = Assembly Language Programming Muhammad Waseem PENERERER ERA R EARNER RR Re ALAA DA IIAP EDDA DADA DID D SPD EDD EDS D DDR DD I DRRPDD: LENEEEREEERESREAA REESE RENEE EERE ER ERR A He Chapter One ”) a) 1/0 ports : transfer points between the CPU & I/O devices b) because they have addresses connected to the bus system known as 1/O addresses and they can only be used in input or output instruction , this allows the CPU to distinguish between them (8) 4-Bytes 0) a) Fetch an instruction from memory. Decode the instruction to determine the operation. b) Perform the operation if needed . Store the results in memory. (0) a) Advantages of H.LL 1. closer to natural language , so it’s easier to read and understand the program 2. assembly contains more statement than an equivalent HLL .so It’s need more time to code the assembly language program. Waseem Assembly Language Programming Mul LPMAADN TREE TTT E AERA ERNE NADER DDE P ERE DE TERED ENED EEE EEE EEE EE LPPTADN TATED T TEENA ERNE NATE ENDED ER ESE EERE DETER Chapter One 3. each computer has its own unique assembly language , so It’s limited to one machine ,but HLL can be executed on any machine has the compiler of that language b) primary advantage of assembly language: It’s so close to machine language ,so it’s produce a faster shorter machine language program . And some operation (read write) can be done on specific Memory location and YO ports, and that may be impossible In HLL SAE eer r Error : : 3 z ; LAAN DADS DA DADA DD DID DD DDD I SDDS PASTA DDB DD DARED PB LPMTADN TREAT DAE N ANE A NAAN TERRE DER ESE TERED ET ED Chapter Two Binary Hex 1001 9 9 1010 10 A 1101 13 D 1100 12 c 1110 14 E 1011 i B Q) a) 14d b) 2397d ec) 1130d d) 10276284 @) a) 1100001b b) 100111001 1b cc) 399h d) 17E8h 4) a) 4Bh b) 95AEh c) 101000101 100b d) 1011001101001 101b EERE EEE Assembly Language SRNR RR LALA SAAS DA ADAP DD DADDIES DEED PETER DR et + LPMAADN TREAT TEENA R NERA N TERRE PER ENE EERE ET ED apter Two (6) a) 11LL00b b) 10110110110b c) COCDFh d) IFACABh (6) a) 101b b) 1001010b ) 25041h d) DOODFh qa) a) 234d = 0000000011 101010b = OOEah b) 16d = 00000000010000b -16d = 2's comp. (16) = 1111111111110000b = FFFOh ©) 31634 = 0111101110010010b = 7B92h 32216d = O111110111011000b 16d = 2°s comp.(32216) 100000 1000101000b = 8228h d) PAE Assembly Language Programming PENEEEDERER DEERE A RAR ARR RR RR RR BR A Beh te LALA DA SDAA DADA DADA DD DDD DADRA EBD PDE DEEPER + LPMTADETAERD TTA E REE RN AANA NADER DEP EN ESET RAED ET ER hapter Two (8) Take 2's comp. for ne} numbers. if no. 1> no. If no. < no.2: negative take 2’s comp. ative number, then Add the two positive result stay as it a) 2's comp. (-1001011 1b) = LILI 111011010016 10110100b+1 111111101 101001b = 0000000000011 101b Positive no. =! 1101b b) 2's comp. (-LTL10111b) = 11111110000 1001b 1000101 1b+1111111100001001b =1111111110010100b, s comp. (1111111110010100) 1101100b Negative no. ¢) 2's comp.(-12ABh) = EDSSh FEOFh+ ED EBO4h Positive no. = EB64h SILAS IAAI SDAA DA DDS D DDD DPD PRAIA DDD d) 2°s comp, (-B3EAh) = 4C16h 1ABCh+ 4C16h = 66D2h Negative no. = 2's comp. (66D2h) 992Eh pee E EERE ea eae eEieroey PA Assembly 1 Programming, REAEAEAANER ADEA RAARA DTA DE AER ADA SERRA SAAR RD LPMTADN TREE ATTEND NNER AAA N TERED EPONA SEERA DETER 10 Chapter Two (9) Unsigned: convert the number as it is. Signed :if msb=0 convert the number as it is. If msb=1 take 2°s comp. then convert. Unsigned signed a) 7FFEh 32766d 32766d b) 8543h 341 15d 31421d c) FEh 254d 2d d) 7Fh 127d 127d (10) 120d =01111000b 000000000111 1000b To make it negative take 2's comp. -120d = 10001000b 1111111110001000b a) 100010006 b) 1111111110001000b ERP D IADR DDD DEE Assembly Language Program PEAR EE LIAA SASS DADA ADDI DADDIES DDE E DEED LPMTADN TREAT TEENA EEDA NATE R ETOP ERASE TERED ET ER un Chapter Two ay 16: 8-bit a)32767d = TINT IITINTIT1Ib X:too big b)-40000d XX :t00 big X :too big ©) 65536d —X :too big 00000001 0000000 1b X :too big ©) -128 0000000010000000b — 10000000b (12) If msb =0 positive else negative a) 1010010010010100b Negative b) 78E3h = 011110001 101001 1b Positive ce) CB33h = 110010110011001 1b Negative d) 807Fh = 1000000001111 1 1b N e) 9AC4h = 001101011000100b Negative Assembly Language Pr SRR RR I PAID DDD DD DDD EDAD DEEP LALA SDDS DADDIES DAD DPS PADD DDD EBD PDD DD DPB 2 3 * LPMAADN TATRA TEENA EA NAA NATE ENDED ERENT IRAE DETER 2 Chapter Two (3) 24 31 Content(hex) Data $ 1 2 2E 37 35 5 a - (4) 41 74 74 61 63 6B 2061 74 2044 61 At t a ek at Da TT 6E won “Attack at Dawn” errr rrr rr ToT Terr otter rrrrrrrrorrcry LAAN SAAS DA ADIDAS DDD D ADDS DDD DDB DTP DEDEDE t 15) t ‘ ? A=4th =61h t The difference is 20h z Add 20h to convert from upper to lower case. z ; 3 3 t Assembly Language Programming Muhammad Waseem ? SEDTEER ERED LPMAADN TATRA TEENA EAA AA NATED DDE PERE SE EERE DETER i Chapter Two (16) “0° = 30h numerical value 1’ = 31h numerical value = 1h The difference is 30h SUB 30h to get the numerical value. (7) Just a technique: 0123456789ABCDEE > 5(¢) B23CDh +1791 21 D+2= go from D to the right 2 places = F : z : = : : : z = z : z 3 : = z : $ z : z = : z : : = : ; C+I= go from C to the right | place =D » from 3 to the right 9 places. =C go from 2 to the right 7 places. = 9 3 © from B to the right I place = C $ ‘9CDFh z t : : LAID DDI I DADA DDD DADA DDD DISD DADRA SADE DEDEDE Sept tet ten tenet ten tee nt ten tnt tt ne tn ten tet te LALA SDD D DEAD PADD DDD ITD DDE D DDD ES E Chapter Three (y) 8086 & 80286 have 16-bit but 802: Tow mode of operation. More addressable memory Virtual memory in protected mode 6 has this advances: M.L Inside CPU in RAM Perform operation store data Known as name known by Address l4-reg 16-bit IMB 8-bit GB) AX : multipli BX : serves as an address 1 ation & division operation. CX : serves as a loop counter, DX : used in /O operation. * 3 LPMAADN TATRA TEENA EAN AAN TERETE PER ESE IRAE DETER Is Chapter Three (4) 0A51:CD90h = seg:offset Physical address = seg x 10h +offset DAS1 x 10h + CD90h DA5S10 + CD90h = 172A0h (5) Physical Address = 4A37Bh 40FFh al address = seg x 10h + offset physical address — seg x 10h 37B — 40FF x 10h 4A37B — 40FFO 938Bh 40FF:938Bh b) offset = 123Bh seg x 10 + offset al address — offset 7B — 123B x 10h = 49140 49140/10h =4914h 4914: 123Bh Assembly Language Pr PEAR RR R LALA SAAD DADA DDD DISD ADADEADDSDDAD DARE B DPD P DDB PIAA IAAI DADA EEE EEE ED EDD EEA PENDANT ERAN ADR TD le Chapter Three (6) Paragraph = 16 byte So any address accept division on 16d /10h call paragraph boundary (ie : any address ending in 0) Ex: 15230 : P.B F 66DA0: PB 3ACAL: not P.B a The compatibility of PC clones with the IBM PC depends on how well their BIOS routines match thoses of the IBM. PC (8) That depends on the size of RAM used. For 8086 IMB is used 10-segment to loading and running applications , these 10-segment give us 640 KB of memory If we use 512-KB it has only 8-segment PALI I AAAI DDD DID Assembly Language Progra PEAR ERRR a NN LALA SAAD DADA DDD D DDD DADA DDDD EAD PDD E DE DBE LPMAADE TREAT TEENA ERNE NATE REDE PER EDE TRAE DETER " Chapter Four a a) legal b) legal c)illegal —_; contains a blank (space) d) legal e) legal f) illegal : contains an illegal character * g)illegal contains an illegal character = LPIA : Q) 3 3 a) 246 gal — decimal t b) 246; legal — hexa t c) 1001; legal —decimal . d) 1,101; illegal — nondigit character , t e) 2A3h; legal — hexa ? f) FFFEh illegal — must begin with digit z 2) 0Ah ; legal — hexa 3 h) Bh illegal — must begin with digit t i) 1110b legal — binary * G) a) A DW 52 b) WORDI DW? ce) B DB 25h d) Cl DB ? e) illegal , number too big can’t fit in word f) ARRAYI DW 1,23,4,5 Assembly Language Programming Muhammad Waseem SAREE TR pees RRR LALA SDSS DA ADIDAS DAD EADS SDDS DIDS DED EBD DDE DED PA AAAS DISD DADA DED EDDA EDDA DDSI D SIDR BDDDEREE DP BED b) content of byte 0002h is : 1Ah c) content of byte 0004h is : ‘E* d) offset address of character *O” is ; 0007h Chapter Four : z ) BELL EQU 07h 3 h) MSG EQU ‘THIS IS A MESSAGES’ z 4) z Address __ content beginning of var. : 0000h 7 A t 0001h BCh B : 0002h Ah 3 0003h Ww 6 t 0004h a z 000Sh v 5 0006h cy t 0007h oO : t a) var. A: 0000h z var. B : 0001h : var. C : 0003h ? LPMTADA TATED TTA E ARN ER NAAN ATER DEP ER ESTE ERED ENED LPMAADNT READE TEEN NNER NAAN ATER DDE P ERE DE EE AEA DETER 19 Chapter Four (5) a) legal b) illegal r ‘ ©) illegal It 1 d) legal e) illegal f) illgal g) illegal net h) illegal i) illegal (6) a) MOV AX,B SUB MOV A,AX b) MOV AXA INC AX NEG AX MOV AAX c) MOV AXA ADD AX,B MOV C,AX LPAI SASS DADA ADIDAS DDD I DDS DDD IRD RDA E DEED E LAPEER AAAI EAE eRe tote tena teeter ten tenet nt ten ten ttt tn tn ten tet te AAAI SPAS DADA DDD DD DD DAD SADIE PDD DETER DPD DDD REDE d) e) a PEAR Chapter Four MOV AX,B ADD AX,B ADD AX,B ADD = AX,7 MOV BAX MOV AX,B SUB AX,A DEC AX MOV A,AX a) MOV AH,I INT 21H MOV DL,AL MOV AH,2 INT 21H b) MOV AH,I INT 21H ADD AL,20H MOV DL,AL MOV AH,.2 INT 21H Assembly Language Pr > 2 3 2 * 3 EEE EEE EEE EEE EEE LPMTADETAERD TTT E NERA ERNE NATE ENTE PERE SE EERE ADEE ER 2 Chapter Four (8) -MODEL SMALL DATA MSG DB 0AH,ODH,'’THE SUM OF ' C1 DB ?, AND C2 DB 2,'1S' SUM DB ?. -CODE Main PROC MOV AX,@DATA MOV _DS,AX MOV AH,.2 MOV DL," INT 21H MOV AH,1 INT 21H MOV CLAL INT 21H MOV C2,AL LALA SPADA ADDS DD DD DDD D ADDS DADE DRED EBD P DDD DDB RD FREAD * LPMAADE TREAD ATED NERA E ANA N ATED DDE P ERE DEEEAR DETER Chapter Four ADD AL.CI SUB AL.30H 2 MOV SUM,AL LEA — _DX,MSG e MOV AH9 INT 21H $ MOV AHACH i INT 21H Main ENDP END Main LD AA SAAS DADA SDDS DD EID DID DPSS ERD TAD PETE DE TES rear ee LPMAADN TREATED TENNER NAAN TEER DDE PONENT TERED ET ED Chapter Four (9) -MODEL SMALL -DATA MSG DB 0AH,ODH,"ENTER THREE INITIALS: $" cl DB ”,0AH,ODH c2 DB ?,0AH,ODH C3 DB 7S .CODE MAIN PROC MOV AX,@DATA MOV DS,AX MOV AH,9 A LEA —_DX,MSG INT 21H MOV AHI INT 21H MOV C1AL INT 21H MOV C2,AL INT 21H MOV C3,AL Assembly Language Pr RR RR LD AA SDDS DA ADIDAS DDD EDDA D DSP D DRED DDD D DD DPB PIAA SAA IAA ADSI AAAI A EDAD EDAD D ATED AID LPMTADN TREAT ATTEN NERA AAN TERETE PER EDE EERE DETER Chapter Four MOV AH2 MOV DL,OAH INT 21H MOV DL,ODH INT 21H MOV AHO LEA DX.Cl INT 21H MOV = AH4CH INT 21H MAIN ENDP END MAIN Assembly Language AAAA SAAS DA DISD DD DD DADA D DDD D EBD TED DEDER FR 2 LPMTAAN TREATED TENN NAAN AA NATE ADDED ERASE ERAT ENED SMALL DB OAH,ODH,'ENTER A HE. DB OAH,ODH,'IN DECIMAL I DB ?,'$" DIGIT: $ CODE MAIN PROC MOV AX,@DATA i MOV DS,AX MOV AH,9 ¢ LEA DX,MSG INT 21H MOV AHI i INT 21H SUB AL.I1H MOV CLLAL MOV LEA INT ADIDAS AAI DA ADIDAS DDD D DDSI TIS SDDSDD DDD BD TDD ADEE DER PIAA IAAI DI IAI I I AIDA DEDEDE SADA TA ADA ADAN EDDIE DDT TAAEDEEREEDEDT ERDAS ER DED NON EO DETER ERED EN BADER ED Chapter Four MOV AHCH INT 21H MAIN ENDP END MAIN Assembly Language Programming Muhammad Waseem PENEEEAAEER EER ERAR AAA R ERA EERE ERR ERR AR te LD AA SAIS DA ADIDAS DDD D ADDIS DSIRE D DDE PADD, LPMTADE ARENDT TEENA AANA NATE ENDED EN EDE IRAE DETER Chapter Four - aly -MODEL SMALL DATA STARS DB QAH,ODH,'*****# -CODE MAIN PROC MOV = AX,@DATA MOV DS, MOV AH,9 LEA DX,STARS. INT 21H i INT 21H INT 21H INT 21H INT 21H INT 21H INT 21H INT 21H INT 21H INT 21H LPIA SDSS DA DADA DADA D DD PD SADE D DDD D DDD B DDD D DE DE FEED TAAEAEER EEDA ERERAS ORDERED EOD EE TERED EEN DEER ED Chapter Four MOV AHACH INT 21H MAIN ENDP END MAIN SAPS DIDI IDSA PEST eer error lores Assembly Language Programming Muha PERERA AREER ELENA RAR Be Be * ? 3 f 3 : $ z ; 2 ? 2 : $ 3 3 ; 2 $ $ ; : f : t 5 $ ; 3 3 5 3 z 5 3 ; ; 3 ; 3 ; 5 ; 3 , 3 3 $ : 3 3 $ $ 3 $ f : $ R 3 $ : 3. AA AA SAAS DA ADDS DDD DDD EID IDPS DDD DDD D ERDAS TDDB Chapter Four (2) MODEL SMALL DATA STARS DB ,"*## #444" QAHODH,'S' MID DB '**# Cl DB? C2 DB? C3 DB 2,' ***,0AH,ODH,'S' -CODE MAIN PROC MOV AX,@DATA MOV DS,AX MOV AHL initials INT 21H MOV CL,AL INT 21H MOV C2,AL INT 21H MOV C3,AL MOV AH2 MOV DL.ODH INT 21H LPMTADNTRERD TTT E NEE R NERA NATE EDT PER ESE ERA EA DETER PPADS AAI AA IASI AIA A AIDEN EDAD IAAT DEAT 2 LPMTADNTRERT TTT E NDNA EAN AA NATE ADDED ER ESE EERE DETER : : z : $ ; $ : : : z 3 . ; : $ ; t ; 2 ; $ z : $ - 3 $ 2 : z 3 ; $ ; z $ ; : i ; z ; z z ; , : z ; 2 z 3 $ $ ; ; : : 3. Chapter Four MOV AH9 LEA DX,STARS. INT 21H INT 21H INT 21H INT 21H INT 21H LEA DX,MID INT 21H LEA —_DX.STARS INT 21H INT 21H INT 21H INT 21H INT 21H MOV AH4CH INT 21H MAIN ENDP END MAIN PPADS AAI DI ADIDAS EEDA IAEA DADE PITY 2 PENDND ATARI Chapter Four Sample execution for question 12: Assembly Language Programming Muhammad Waseem $ ? $ = t z ? ? 3 : - ? ? 2 LPMAADNTRERD EDTA RENE RAAT ATER D DEP ER ADEE PARADE TER Chapter a Content of CF fF ZF PF OF a) AX= 8000h O10 nf ft b) AL= 02h 10 0 0 0 c) AL= FFh oO 1 0 1:0 d) AL= 81h 11 0 1 0 e) AX= 712Ah BX=1ABCh 0 0 0 0 0O f) AL= 7Fh 1000 1 g) AX= 8000h 11041 1 h) AX= FFFFh 1101 0 Q) cyan OL cyin OIXX XXXX XXXX XXX OD xx XXX XXX XXNX + TOXX XXXX NXXX AXXX x: could be 0 or I (ie any number) ol ex AX= 7FA0h = 0111 1111 1010 0000 600Dh = 011000000000 10L + DFADh =1101 1111 1010 1101 ‘you = 1 XOR 0 = | = OF (signed overflow) Assembly Language SRR ing Muhammad Waseem LEONEL ERE REE E RE RARER ERE ESR ER BO AD AA SAID DADA DDD DD DID DD ED AA SPAS DDD DDR DED APRS EDD PD PEPER REE EEA LPMTADATRERT TTA EN NNER NAAN ATER DEEP ERENT TERED ENED Chapter Fiy b) cyou 1 O eyinw AX= 10XX xxXxX xxxx xxxx BX= LOXX XXXX XXXX_XXXX + LOOX XXXX AXNX XXXX Ex: cyoa 1 0 cyin f 9DE4h =1000 1101 11100100 B216h =1011 OO1O 00010110 + 1001 1111 1111 1010 XOR cyou =0 XOR | OF (signed overflow) LIAB DPD DDE Assembly Language PEAR RARR EER EE LAAN DADS DA ADIDAS D DD EDDA PSTD D DEDEDE DESPRE LATO DDE E DATED DEANNA ANDRO DEAD A DONE E DEAE ADEN Chapter Fiy GB) We'll show solution of one and the rest are the same ol 512Ch = 0101 0001 0010 1100 4 100 0001 1000 0101 + 92BIh = 1001 0010 1011 0001 Method I By taking XOR between cyinw and cYeu Cyinw = 1, cyou = 0 see Q2.a 1 XOR 0= OF = | (signed) Cyou =CF=0 (unsigned) Method 2 First number is positive Second number is positive After addition the result expected is positive , but the result is negative ,so there are error occurred The error indicate by OF = | Content of AX signed OF _ unsigned CF a) 92BIh 1 0 b) 18DDh 0 1 ce) BC97h 0 1 d) 1 0 ©) 74FFh 0 0 AD AA SAAS DADA DAIS D DDD PDD ESDP SIDA B DD DPD SPE DPB PPAR LAID SAAS DADA ADIDAS PDD DADDIES DDD REDE Chapter Fiv 4) We'll show solution of one and the rest are the same c. borrow 1 0 borrow 0 ms ato bit-4 19BCh ="0001 1001 1011 1100 SIFEh = 1000 0001 1111 1110 - 97BEh= 10001 0111 1011 1110 Method | XOR between borrowin mb and borrowinw bir14 ash XOR borrowino bit-14 1XORO=1 OF=1 (si ned) borrowinom = CF = (unsigned) Method 2 First number is positive Second number is negative But second number is greater than first number. And 1° (2M) = pty od The result is ne} positive. ive so an error occurred OF = LPMAADN TREAT DARREN ERNE NATE REDE PORES TEER EDO TER FA > ? + * PENDANT ANNAN ND 3 z 36 : as t Chapter Five 3 t $ : : z z t t t ? - * ; ; t Content of AX signed OF __unsigned CF 3 g a) O07BDh 0 0 t t bd) 6878h 1 0 t : ©) 97BEh 1 I t z d) O1F3h 0 I : 3 ec) 1A22h 1 0 t : : ? t ; = ¢ t : : 3 3 : + : = * x i i t : z z + : ? t * 3 ; $ : = + * t . z 3 3 3 $ : t t - 2 t : $ = * : t : i i : : F__Asumbly Language Programming Muhammad Waseem : PRATESEAAE TRAE E NERA E NEARER TAREE ERAN OD PEAR R ER LUNNADL ANTENA ARTA NENDANLR NENT BB $ z Chapter Six $ $ a 3 a) CMP AX,0 2 JGE ENDIF t MOV BX,-I 3 END_IF: 3 $ 2 b) CMP ALO ? JNL ELSE_ z MOV AHOFFh 3 JMP END_IF t ELSE:MOV AHO ? END_IF: $ 3 3 z z - CMP ALO 3 JL THEN. ; MOV AHO 3 JMP ENDIF 3 THEN; MOV AH.OFFh t END_IF: : : t °) CMP DLA’ 5 IL END_IF ft CMP 3 IG END_IF $ MOV AH,2 3 INT 21H t END_IF z 2 : ubly Language Pro mad Waseem SRR RR FREE LIAN ED ERNE NNR TRATED ANDRA NOREEN AEA D NODE : - - d) CMP AX,BX ;. 3 IGE END_IF 3 t CMP BX,CX t t IGE ELSE_ : * MOV AX,0 : t JMP —END_IF : z . : - BX,0 3 t ? 3 $ t ? t t ; ; ; e) CMP AX.BX ? = IL. THEN_ ? 2 CMP BX,CX 2 $ JL THEN_ 3 z Ne DX,1 ? t MP END_IF t $ z . THEN_: MOV DX,0 * z END_IF: 3 ¢ t * * + + t t t f CMP AX.BX t 3 INL ELSE_ z t MOV AX.0 t * JMP END_IF ? t ¢ 3 “MP y : t CME BX,CX t t JNL — ELSE_2 : t ? s 2 t t t $ t t By at LUNNAD ANTENA ARTA ANLRRNRTN DB ? : 3 : t $ : $ z = : 2 $ 3 : $ - s z : = $ : $ t ? t z : t : : $ 2 $ g : t z : $ * : $ : $ z : t 2 : $ = 3 : z - 2 $ z : t 3. Chapter MOV BX.0 IMP END_IF ELSE_2: MOV CX.0 END_IF: CMP AX,BX JL THEN CMP BX,CX JL THEN_2 MOV CX.0 JMP —END_IF EE THEN_: MOV AX,0 JMP END_IF THEN_2:MOV BX,0 END_IF: Assembly Language Pi M PEARSE EARLE RAR ERR BR te te d Waseem : 3 3 3 3 ; : ? 3 : 3 * 2 + 2 > > 2 + 2 LPPTADETRERD TTT E RANE ANA N TERETE PER EDE ERA D ET ER Chapter 2 MOV AHI INT 21H CMP JE CMP JE any let MOV AH.ACh INT 21H JMP END_CASE EXE_CR: MOV AH,2 MOV DL,ODh INT 21H JMP —_ END_CASE AH,2 DL.OAh 21H END_CASE: LAAN SAAD DADA DDD DDSI DD DID EDDDD DDR R DDD EDP R DPB ED Assembly Language PEAR RA AREER ER LALA SDDS DA ADA DADD DDD DEED DISPERSED DPD TAD PPD PD DPB eRe teteteet ten tenet ten teen at ten tnt tt tn tn tent tet te first we find how many loops needed: first term )/ difference (148 — 1)/3 = 49 loops (ast term MOV MOV MOV ADD ADD LOOP LI Chapter Six * 3 PEPE SIAN IAAI AAAI DDD ADDI DDSI DISD EDAD DDD BD DADS DES Chapter b) (first term — last term)/ difference (100 — 5/5 = 19 loops MOV CX,19 MOV AX,100 MOV BX,100 LI SUB BXS ADD AX,BX LOOP LI (4) a) MOV CX.50 MOV DX.I MOV AX,1 L1:ADD AX4 Loop LI Programming M LEARNER RARER RR A BB LPMTADN TREATED AENEAN AANA NATE ENTE PER ESE IRAE DETER SALA AAAI ADDI ADIDAS AAS SIA IAAT DDD IDSA IAAI IDA D ADIT LPMTADA TATED ATTEN NERA AA NATE ENDED ER ESE EERE DETER Chapter b) MOV AHI INT 21H MOV AH.2 MOV DLOAH INT 21H MOV DL.ODH INT 21H MOV DL,AL MOV CX,80 DISPLAY: INT 21H LOOP DISPLAY ) MOV CXS MOV AH] 3 Li: INT 21H LOOP LI MOV DL MOV CX.5 MOV AH2 L2: INT 21H LOOP 12 AD AA SDDS DAA DA DADS D ADIDAS ISDST D DEEDES PBR PPADS ADIDAS DDE AA AA SAAS DADA DDI D DDD PIAS DIDS B DDD PED DPB Chapter (5) MOV AX.0 :CX divident BX divisor AX quotient while_: CMP CX,BX JL END_WHILE INC AX SUB IMP END_WHILE: (6) XOR CX.CX : CX product BX,AX positive numbers Ll: ADD CX,AX DEC BX INZ LI LPMTAD NTA T TEENA EAN AA NATE ENDED ER EDE EERE ET ER 4 DD 2 LPMTADNTRERD ATTEN NERA AA NATE ADDED ER ESE EERE DETER 45 Chapter Six a a) MOV AH, MOV CX,80 LI: INT 21H CMP AL,20H blank = 20h LOOPE LI b) MOV AH,1 MOV CX,80 LI INT CMP LOOPNE LI Assembly Language Pr PEAEEELEEER EERE LA RRA RL RR AR A Beh LALA SAAS DA AAAS DDI DAD DD DIDI PSDP D BD DARD EEE EEE LPMTADE TREE TTA E NERA ERNE NATE ENDED ER ESE EERE DETER 46 Chapter (8) -MODEL SMALL. -CODE MAIN PROC MOV AH,.2 MOV DL,'?’ INT 21H MOV AHL INT 21H ; 1 MOV BL,AL. INT 21H CMP BL,AL JG SWITCH JMP DISPLAY SWITCH: XCHG AL,BL DISPLAY: MOV AH.2 MOV DL, 0AH t INT 21H MOV DL,BL INT 21H MOV DL,AL Assembly Language Pr Muhammad Waseem PEEESERSESERR EERE RATA RA eR Re LPAI SAAS DA IDA DDD DDD D DDSI PSDP DDD ID TAD TDAP DBE PIAA IAA IAA AAAI III AIDED AIAN EDAD IAI EDAD ADDED LPMTAD ETRE ATTEND NAAN AA NATE ADDED ERE DE EERE DETER a Chapter Six INT 21H OUT_ MOV AH.4CH INT 21H MAIN ENDP. END MAIN : z ? = : z : : - : : 3 z = : = ? = = = 3 = 3 LALA DAIS DA AAAI DADA PID DID DDD DDD DEP DDD PDE DEP 1 AD LA DDD I DADA DDD DDD DDD D EDDA DD DA DAD DEDDDR TEED 9) MODE! .CODE MAIN PROC. SMALL CONTINUE: COUNT: eRe tee ten tenant tenet at ten tn ttt tenn tn ten tet te 8 Chapter Six MOV BHO MOV AH,2 MOV, CX,7FH MOV DL.80H MOV BL,80H MOV DL,BL INT 21H DEC CX INC DL MOV BL,DL MOV DL,20H INT 21H INC BH CMP BH,10 JE COUNT CMP CX,0 INE CONTINUE JMP out_ MOV BH,O MOV DL,OAH INT 21H MOV DL,ODH INT 21H PRED LPMAADN TREE ADEE ADEN N EAA AA NATE EDD E PERE SE EERE DETER ” Chapter Six JMP CONTINUE Out. MOV AH4CH INT 21H MAIN ENDP END MAIN PRAIA ; 3 2 = z $ : LALA SDSS DA AAAS IDI DDD D DISD DADA DEAR RADE SPEDE 2 2 ? z 3 LPMATDN TREAT TEENA AANA NATE ENDED ERENT EERE DETER Ape) ee er ws Fs finan Assembly Language Programming Muhammad Waseem LEAEEELRE ERLE ELEN A Bt Be ? $ $ : t t > z = ? $ 2 : z 2 = 2 + ? : $ : = z t $ : ? : $ $ : - g 2 - z = $ $ $ g : 2 z 2 $ $ : $ ? : $ 2 : - 2 3 ? $ 2 z Fae > > + 2 > + 2 eRe teen ten tenet te tenn tte tn tt ten tn ten tet te St Chapter Six (10) TITLE Q9: WRITTEN BY MUHAMMAD WASEEM (v.V) -MODEL SMALL “STACK 64 DATA CR EQU 0DH LF EQU 0AH MI DB CR,LF,'ENTER A HEXA DIGIT :"'S' M2DB_ CR\LF,IN DECIMALITIS : Perera aS CI DB M3DB_ CR,LF,'DO YOU WANT TO DO IT AGAIN ?” DB *Y/N''S' M4 DB CR,LF,'ILLEGAL CHARACTER - ENTER * DB ‘0.90RA..F MS DB CR,LE,'IN DECIMAL IT IS :1' C2 DB ‘ .CODE MAIN PROC MOV AX,@DATA MOV DS,AX BEGIN MOV AH,9 LEA DX,MI INT 21H NEW: MOV AH, | i INT 21H Assembly L amming RENERAAANSR RSE DAER ADEA DEA DEAE A NAR AR EAA SA READE SDAA DIA D ADP A DADS DA DISD D SDA IDI DDEDDR PADDED DD PAPI D AIDA AAAS EDAD DADA IDEAS IAEA IAAT * LD LA DDSI DADA DDD DDD DADA EDAD DDS PD IDA IDET RED DBP MSG: ILLEGAL LPMTADN TREE EDTA NANT AAA N TT ERNE PEN EDE TERED ET ED Chapter CMP AL,'0" JG ILLEGAL MOV C1,AL MOV AH,9 MOV AH,1 INT 21H CMP AL,'Y’ JE BEGIN CMP AL,'y’ JE BEGIN JMP ENDD CMP AL,'A’ JLILL i CMP AL,'F Waseem pean TEE EEC e SECC eer Eero ree eter rc rc rr oor ro reo rer error ror cores RT LALA LDAP LAAD A DDD D A D AA DD DDD D DAD DDI DDDIDD DDD DDD DBD LPMTADE TREAT TEENA EAN AA NATE ENDED ERENT EERE DETER Chapter Six LEA DX.M5 INT 21H JMP MSG AL2:; MOV AH,9 LEA DX.M4 INT 21H JMP NEW ENDD: MOV AH.4CH INT 21H MAIN ENDP. END MAIN Amer VPER-VRUSBLNECOM Der SRST eet) lore ee rel iran eran PALA BADIA IDEA DADA IDI AIT AIIA DS DADDAID RTA tote et ten a ten ete te ten ten tn ttt tn tt tet te Chapter Six dl) Same Q10 but we put error counter in illegal lable TITLE Q9:WRITTEN BY MUHAMMAD WASEEM cee Serene EEE Errore rs uu DX,ML SSS e ere Programming * x REEERDR ATT REEE ERE EAE EA PERERA EDA EEEE REE REET ERER DEED t (v.V) t t .MODEL SMALL t $ “STACK 64 : i : z DATA t t CREQU 0DH t t LF EQU 0AH t : MI DB : : M2 DB IMAL IT IS : 3 3 CIDB 7,8 3 3 M3DB_~ CR,LF,DO YOU WANT TO DO IT AGAIN ?” 3 t DB ‘YN''S' z t M4 DB CR.LF,TLLEGAL CHARACTER — ENTER * : : DB ‘0.9 OR A... t ¢ MS DB CR,LF,'IN DECIMAL IT IS :1 : $ C2DB_ 28) 3 z M6 DB CR.LF'ERROR THREE TIMES ENTERD’ z t DB ‘ILLEGAL CHAR !",S' : $ $ : .CODE t : MAIN PROC ; 3 MOV AX,@DATA 2 MOV DS,AX 3 io t BEGIN MOV BL.O counter for error t MOV AH,9 $ $ : , 3 3 $ LOADED NT AERD TTA EAEE ANE A NAAN TERRE PER ESE EERE DETER Chapter Six INT 21H NEW: MOV AH,1 INT 21H CMP AL,'0' JL ILLEGAL CMP AL, JG ILLEGAL MOV C1,AL MOV AH,9 LEA DX.M2 INT 21H MSG: MOV AH, DX.M3 21H IN MOV AH,I INT 21H CMP AL,'Y' JE BEGIN CMP AL,'y JE BEGIN JMP ENDD ILLEGAL: CMP AL,'A’ JL ILLEGAL2 CMP AL,'F Waseem pean AD LA DAA D DADA DDD DDD EDDA ADDIS DDS PD IDA IDDBA DRED DPB EEE RET LPMTADA TREAD TTA E NERA E AAA N TEER DDE P ER ESE EERE DETER Chapter JG ILLEGAL2 SUB AL,HH MOV C2,AL MOV AH,9 DX,M5 JMP MSG LLEGAL2: MOV AH9 LEA DX.M4 INT 21H counter for 3-times illegal input INC BL CMP BL,3 JE ENDDD JMP NEW ENDDD: MOV AH.9 LEA DX.Mé6 INT 21H ENDD: MOV AH.4CH INT 21H MAIN ENDP END MAIN LAAN SAAS DADA DDI DIDI D SDDS DIDS ERD D DED E BLAIS AI IAA IAAI AAAI ADIDAS EDAD ITAA IIIA TD DEDEDE LPATADN TREAT TEENA EAN AA NATE E DEP ER ESE EERE DETER Chapter i Admincrntor Amer VPERVRUSCLNE.COM ox! ony Say cae TN DECIMAL Sea aera SUG a aay Mier iba rae SRO RO eae ta) ere we awa Assembly Language Programming Muhammad Waseem PEAR RARER DP AA BAAS E SEEDED EEE TRIAD IID LA LAL DDD D EDDA DADA DADS EDDA D EDD PDIP RD DR EDDA DDD REDD EDS D DPD ERD R TD LPPTAD ETRE TEEN N AANA NATE ADDED ERENT EERE DETER Chap even a) a) 10001011b b) HIE1001b ©) 101001 10b d) 10100001b (2) a) AND. AX,AAAAh b)OR BL,81h c) XOR DX,8000h d) method 1 NOT WORD! method XOR WORDI,FFFFh B) a) TEST AX,FFFFh b) TEST BX,0001h c) TEST DX,8000h d) TEST DX,8000h e) TEST BL.FFh PADDED aeeent AA AA SAIS DADA ADDED DD DD DD EADIE DEPT TED DDE LPMTADNTRERD TTA E NERA EAN AA NATED EDEN ESE EERE DETER Chapter Seven AL = 11001011b=CBh then a) AL = 10010110b = 96h b) AL = 01100101b = 65h c) AL = 0010111 1b = 2Fh d) AL = 01111001b = 79h e) AL = 11110010b = F2h f) Al 10010111b = 97h AL = 11111001b = F9h (5) a)SHL — BS5,1 b) MOV CL,3 SHL AL,CL c) MOV AX,32142 MOV CL,2 SHR = AX,CL d) MOV BX, MOV CL.4 2145 SAR BX,CL LD AA SAAS DA ADIDAS DDD DAD DDD D DDD DTD EDAD DD DED EEE EE EEE Ee PERPAAEAR AAR AR RATE ERD RET LEAD AANA NRA TD Chapter Seven (6) a)OR AL.30h. b)OR — DL,20h a) MOV DLBL MOV CL3 SHL BL,.CL SHI DL,I 1 ADD BL,DL L b) MOV MOV i ROR Assembly Language LA AA SAAS DADA DAIS DIDI D DADDIES DDB DTPA DDE DRT FREE PARRA EER EE LD AA SDDS DA ADIDAS DADE EDDA DDSI DDD DADE DERE DD Chapter Seven (8) -MODEL SMALL DATA MI DB ‘TYPE A CHARACTER :''S M2 DB 0AH,ODH, THE ASCII CODE OF ' Cl DB ?, INBINARYIS :,$ M3 DB OAH.ODH,'THE NUMBER OF | BIT IS C2 «DB 2.$' .CODE MAIN PROC MOV AX,@DATA MOV DS,AX MOV AH,9 LEA DX.MI INT 21H MOV AH,! INT 21H MOV BL,AL MOV C1.AL MOV AH9 LPOTADETAEED EDTA NERA E ANA N TEER DDE PERESE EERE REET ER ol DEED LENARA AANA D DNR OB tet LEA DX.M2 - INT 21H Chapter Seven MOV BHO MOV CX.8 MOV AH,2 LI: SHL BL, | Jc 12 MOV DL,'0 INT 21H JMP L4 L2: MOV DL,'l’ INT 21H INC BH L4: LOOP LI ADD BH,30H MOV C2,BH MOV AH9 LEA DX,.M3 INT 21H MOV AH,4CH INT 21H MAIN — ENDP END MAIN Serer rer Orr CCC rrr rec ere c roc ee irre err roc ro ree errr rey * 3 $ - ? t 2 : t - 3 2 3 - 3 3 - 3 $ 2 3 3 3 3 t 3 3 : 3 $ 2 $ - ? 3 - 3 $ - 3 $ 3 3 - : ? - > z 2 3 3 3 $ 2 3 - 2 $ s 3 3 3 3 é Administrator Ares MPER-VRUSQUVECOM Mest) 2D AAS PADD SDAA DDD A DADA DADE ME ASCII Ci OB CCI Mr Hi TEST> Man ase ver ae THE ASCII CODE OF K IN BINARY 1S:01001011 3 aoe eo) ? kc: \TEST 3 3 Assembly Language Programming Muhammad Waseem PPA TATED EREEDEDT ERODE ERD ED NONE O REEDED ERED ER DEER ER Chapter Seven (9) MODE! -DATA MI DB OAH.ODH,'TYPE A CHARACTER °, M2 DB OAH,ODE 1E ASCII CODE OF ' Cl DB ?,' IN HEXAIS '/$' SMALL CODE MAIN PROC MOV AX,@DATA MOV DS.AX BEGIN MOV AH) L DX.MI INT 21h MOV AH,1 INT 21H CMP AL,ODH t JE OUT_ MOV C1,AL MOV BL.AL MOV AH9 DX.M2 Assembly La APPA DIAS DA DADA DED DAD DD EDD DADS DID D EDAD DDD ETE, ED ete teen ten teeter ten een at ten tnt tt ten tn tn tet te INT 21H Chapter Seven MOV CL4 SHR C1,CL * note below ADD C1,30H MOV DL,C1 JMP EXE] continue: AND BL,OFH CMP BL.9 JG ERROR ADD BL,30H MOV DL,BL JMP EXE2 EXE! MOV AH,2 INT 21H JMP continue EXE2: MOV AH,2 INT 21H i JMP BEGIN ERROR_: ADD BL,37H MOV DL,BL MOV AH.2 ARREARS APPA DADS DA DADA DD DD DDD DADE DIDIER PEDRO Jee eee ee eee ee eee Eee Ree RR INT 21H Chapter Seven JMP BEGIN OUT_ MOV AHACH r INT 21H MAIN ENDP END MAIN note : in first h sn't need to compare if no. in Cl pects ca fee coroner erry 3 ; 3 $ : : z z : ; 3 2 3 3 3 3 3 3 2 3 3 3 3 3 > 3 3 3 : 3 3 > 3 2 3 3 LA DPADD ADDED DDD DD DDD ADDR REISS DDR TERS ER DDD D DDD D PE LPOTAD NTR T TEENA EAA AA NATE ENDED EN ESE ERA ER DETER Chapter Seven (10) MODEL SMALL DATA MI DB 0AH.ODH.'TYPE A HEXA NUMBER (0 - FFF): S' M2 DB 0AH.ODH.'IN BINARY IT IS: 'S' M3 DB 0AH,ODH, ILLEGAL HEXA DIGIT, TRY AGAIN :''S" -CODE MAIN PROC MOV AX,@DATA MOV DS.AX MOV AH LEA DX.MI INT 21H START XOR BX.BX MOV CL,4 MOV AH,1 INT 21H WHILE_: CMP ALDH JE END_WHILE CMP AL,'0' JLERR CMP AL, 9! JG LETTER AND AL,OFH JMP SHIFT DAE AIAN SAAS DA AAAI D DDD EDDA DDI DDD DDD PPD LPMAADN TREATED TENT N AANA NATE REDE PER EDE EERE DETER Chapter Seven LETTER: CMP ALF 3 JG ERR CMP AL,'A’ JLERR SUB AL,37H. SHIFT: SHL BX,CL r i OR BL,AL INT 21H JMP WHILE_ END_WHILE:MOV AH,9 LEA DX,M2 7 INT 21H MOV CX, 16 MOV AH,2 SHOW: SHL BX,1 JC ONE MOV DL,'0 INT 21H JMP LOOP! ONE: MOY DL,'! INT 21H LOOP! LOOP SHOW JMP OUT_ Muhanad Assembly La Waseem SR ADAA DIAS DA IDA DDD ADD SADT D EADS DADDIES PED RDEDDED PIAA DDD 2 Chapter Seven ERR MOV AH,9 LEA DX.M3 INT 21H JMP START OUT_: MOV AH.4CH INT 21H MAIN ENDP D MAIN BBA FAIS AAAI AAI i Por emia Ftc) Le este) Pec yeo nT mn oer ccst TIT) ER (0 - FFFF): FEIC irre to) LPMTAD NTR T TEENA EAA AA NATE REDE PER ESE EERE DETER Chapter Seven ap MODEL SMALL DATA MI DB 0AH,ODH,' TYPE M2 DB OAH,ODH,'IN BINARY DIGIT UP TO 16-BIT: ''S AITIS :$ -CODE MAIN PROC MOV AX,@DATA MOV DS,AX MOV AH,9 LEA DX,MI INT 21H MOV AH,1 MOV CX,16 Li: INT 21H CMP AL.ODH JE OUT_ AND ALOIH SHL BX,1 OR BL.AL LOOP LI Assembly Language Pr RR RR LILA SPADA AAAS DDD DADE EDDA S DSA DDD DPD BDA PDS D DDT PIAA SAA I AAAI IDI AIAEDEADAI SEA AD ASAI IA AIA ADDED ADDI LPMTADN TREATED TENN N EAN AA NATED EDEN ESE OPA D ET ER n Chapter Seven OUT: MOV AH9 LEA DX,M2 INT 21H MOV DHA 12; MOV CL,4 MOV DL.BH SHR DL,CL MOV AH,2 CMP DL.9 JG LETTER ADD DL,30H INT 21H JMP L3 LETTER: ADD DL,37H INT 21H L3; ROL BX,CL DEC DH CMP DH, JNEL2 AD AA SDDS DADA DDD DAD DID DD SID DISSIDIA DARDS R DAD PRD DED PPADS ID IAI ADIDAS AIA AIDED AIDA SSSI DADA EIDE D ADEA 28 PERTEDEDEEDE ERD ER DEAN ED EDO DEED ERE EERE DED ER Chapter Seven MOV AH4CH DOS INT 21H MAIN ENDP END MAIN Cag By IT IS 0060 IN HEXA IT IS 21416 Soci s TYPE A BINARY DIGIT COTA UOEEEY ane aa sam Cea Assembly Language Programming Muhammad Waseem SERRE AREER EARRAR RRA Bt DL DD LDR D DD DDR SDDS D DDD RDS RRP P DDR RDI D DDD PDB DEED ASDA DEED DDR D DPD D DOPED EDD E DDD D REDDER REDRESS SIRS TDD R DEEDES ED LIVE EDR ETAT EDDA N ANNO NODA DEDEDE EEE EE ADEN Chapter en (2) MODEL SMALL -DATA BI DB? B2DB? MI DB 0AHODH.'TYPE A BINARY NUMBER , UP TO 8 DIGITS :''S DB 0AH,ODH,'THE BI M2 8 .CODE MAIN PROC MOV AX,@DATA MOV DS,AX MOV AH,9 LEA DX,MI INT 21H MOV BLO MOV CX,.8 MOV AH, Li: INT 21H CMP AL,ODH JE OUT SUB AL,30H I SHL BL,| OR BL,AL LOOP LI Assembly Language Pre PEER RE LPAI DDSI DA SDAP AIDA DID DADPD DIDS DDI D DDR DADA SPEDE FEED LPMTADNTAERD TTT E NER NERA NATE ADDED ER ESE TERED ET ED ? 3 , 3 3 $ z z 3 : 2 $ f 3 3 ; 3 3 2 3 3 ; $ ; $ 5 ? 2 , ; 3 ; 5 z ; $ 3 ; : 3 3 ; 3 f ; $ 2 3 2 $ 5 3 $ g : 3 3 $ : 3 Chapter en OUT: MOV BIBL MOV AH,9 INT 21H MOV BLO MOV CX,8 MOV AH,1 L2: INT 21H CMP AL.ODH JE OUT2 SUB AL,30H SHL BL,1 OR BL,AL LOOP L2 OUT2: MOV B2,BL MOV AH,9 LEA DX.M2 INT 21H ADD BL.BI :BL ) MOV AH,2 MOV CX,8 L3: SHL BL,1 JC ONE MOV DL,0 INT 21H JMP continue ONE: MOV DL,’ PPAA SDAP AAAI IDI I ADIDAS SDS AA IIAP DAP PITTED E DERE N NETRA NENA NARA NOREEN AEA D NODE ER f Chapter Seven ; $ ; 3 INT 21H z $ continue: LOOP L3 3 i i . MOV AH ACH i ? $ INT 21H ; MAIN ENDP : END MAIN z Torn UO RC Mca ese otT TYPE A BINARY NUMBER . UP TO 8 DIGITS :10011100 aor aSe Reeth) uaa Moers PORE career WORD omen Us| THE BINARY SUM IS 00001001 rose Dee Cas ea poneeeeey US Ata PR screener) Lato MOOR TEEEEG) oye TYPE A BINARY NUMBER , UP TO 8 DIGITS :01 TYPE A BINARY NUMBER | UP TO 8 DIGITS :11111110 [LaTOLaS ma Eeeett ee cos PADDED DED DE PDP DPE D DDD REDD DED PPD R DD DPR DE Assembly Language Programming Muhammad Waseem ; ; : 3 ; ; : ; 3 ; : i LPMTADN TREAD ADEE ARN EA NAAN T TEENS PERE SE ORR ER DETER Chapter en In this question we use procedures technique to make the solution easier and readable You'll know more about procedure in next chapter (ch.8) -MODEL SMALL -DATA MI DB OAH,'TYPE A HEXA NUMBER 0 -F 2 DB OAH, THE SUM IN HEXA IS $' COUNTER DB4 NUM Dw? -CODE MAIN PROC MOV AX,@DATA MOV DS.AX MOV AH.9 LEA DX.M1 INT 21H CALL READ MOV NUM.BX MOV AH,9 =A DXMI 21H IN CALL READ PEE EEE Assembly La PNR RR APPA DDSI DADA DDD DADA A SDDS PADDR EDAD PPD 2 > + 2 + > + LPMTADNTAERD TTA E RENN EAN AA NATE REDE PEN ESE EERE DETER Chapter en MOV AH,9 LEA DX,M2 INT 21H ADD BX.NUM JC SHOWCY MOV AH,2 MOV DL,'0 INT 21H JMP NEXT SHOWCY:MOV AH,2 MOV DL,'1 INT 21H > + * ae e) TYPE A HEXA NUMBER Wasa asueteS + ewer ? [aeemeess + anaes Bay THE SUM IN HEXA 15 * learn ? ie aaa end $ S 00-09 BRI yPc A HEXA MUMBER O -FFFF z Pena tag $ N HEXA TS 16100 et] ro Ra PRT teeteet ten teeter pete etn ten tn ttt ten tn ten tet te 8 BS z f 3 $ $ z $ ; 3 3 ; : : $ $ 3 3 3 3 $ ; : 5 : $ 5 z ; 2 : ; 5 3 ; z z ; 2 3 f 3 : f ? 3 3 $ 2 $ $ 3 $ $ 2 ; 3 3 3 3 3. Chapter Seven (4) Procedures are used -MODEL SMALL -DATA MI DB 0AH,'ENTER A DECIMAL DIGIT STRING :$° M2 DB OAH, THE SUM OF THE DIGIT IN HEX IS $' COUNTER DB 4 .CODE MAIN PROC MOV AX,@DATA MOV DS,AX MOV AH,9 L DX.MI INT 21H CALL READ MOV AH,9 LEA DX,M2 INT 21H CALL SHOW MOV AH4CH INT 21H MAIN ENDP Assembly Language a mad Waseem SRR RR nna PEAR EER RRR B SPAASAA IAAI IAAI AAAI AIDA EDEN AAS IA AIDA IAT ED TEA IAI Assembly Language t $ g 2 2 z 2 $ = ? 2 $ z 2 = - * $ 2 3 t $ z - = z 2 t ? $ t $ = 2 $ 3 * ? 3 : : g : $ z : $ $ : $ 2 = - 2 3 ? $ ? 2 PRT teen ten ten tener nen etn nt ten tn ttt ten tn tn tet te Chapter Seven READ PROC XOR BX,BX WHILE_: MOV AH,1 INT 21H CMP AL,ODH JE END_W AND AL,OFH CBW ADD BX,AX IMP WHILE_ END_W: RET READ ENDP SHOW PROC MOV cL4 START: MOV DL,BH SHR DL,CL CMP DL,9 JGLETTER! ADD DL,30H JMP SHOW! LETTERI:ADD DL,37H SHOW1: MOV AH,2 SRR RR PIAA SAA IAA AAAI AAAI ADDED SI SEDANS AAAI ADEA DEDEDE IT SEER LERDEDNDA TRINA D ADDENDA RN NB INT 21H Chapter Seven ROL BX.CL DEC COUNTER CMP COUNTER,O JNE START RET SHOW ENDP END MAIN DEI PAD IAA IAD IAD IAD DADDIES RUPE Ca aos Seon coe Us ee ce am CREST LS CSCU a a Cue Cm Sm CT, oes) Se eu) ama mE TS Pse Td HE SUM OF THE DIGIT IN HEX IS 0033 ERs tl Ua sec) amar eS] Ra soem Smee) east) MMA coma arse tera ME SUM OF THE DIGIT IN HEX IS 0073 : \TEST> ? z z z : i z ; 3 : s ; * i >: 2 2 z > 3 ? 3 3 : 3 t * = 3 3 2 : 3 2 : Assembly Language Programming LPOTADN TREATED AENEAN EAA AA NATE ENDED ER EDE IRAE DETER Chapter Eight qa) a) SP=0100h b) 100h byte for stack mean 100h/2 word 80h word AX BX = 9ABCh CX = 5678h SP =00FEh 9ABCh QB) When SP= 0 and decrement its become SP= FFFEh. Program will not produce error ,but CS area is mix with SS area ,that might produce error in result in big program @ IP =0300h SP =0108h Word on top of stack is 0203h 3 3 = z 3 : $ : = : : = = = : : $ = Assembly Language Programming Muhammad Waseem PENAEARPEREA REE ERERAER ARERR AERA ARR RR teh te LA PAI DADA D DADA DADA PADDR DID DEEDDEASDDEP RED BPR: + LPMTAD ETRE TTT E NR NERA AA NATE ENDED ENE SE EERE D ENED Chapter Eight a) IP=012Ah SP =0202h b) IP =012Ah SP =0206h Note : RET POP_VALUE Mean the stack get more Original value of SP =202h + POP_VALUE(4) = 206h (6) a) POP AX PUSH AX b) POP AX POP CX PUSH CX PUSH AX c) POP AX POP BX PUSH AX PUSH BX Assembly Language Programming Muhammad Waseem PENEEEAEEER ESE RE RARER ERE AER NR NR BA teh te FR LALA S DISD DIDS D ADDS SPDT SDDS PED EDED DET eR Tee teeteet ten a ten aetna een nt en tn ttt tn tn tn tet te Chapter Eight ”) a) SAVE_REGS PROC POP AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH BP PUSH DS PUSH AX RET SAVE_REGS ENDP b) RESTORE_REGS PROC POP AX u POP DS POP BP POP DI POP SI POP DX POP CX POP BX PUSH AX RET RESTORE_REGS ENDP- Muhammad Waseem sembly Language Programming SAEAEAAE AEA RRS PERE ER ADIN SAAS DADA DADA DID DAD PADDED DDD DBD ADEPT SALAS RIAA AIR I ALIA AA AAAS AAS AA IAAI ID TED AID IAAI D ADAP LAAN DADS DADA DDI DID DID DID DADS D EDDA DDS DDD Assembly Language Programming PEAERERERER EERE NERA RR Bt Bt Chapter Eight (10) a)Note : to make the range between | to 32767 we just ignore msb (sign bit /bit-15) by enter 15 bit, INBINARY PROC XOR BX,BX Moy C: MOV AH, INT 21H WHILE_: CMP AL,ODH JE END_WHILE AND ALOIH SHL BX, OR BL,AL INT 21H LOOP WHILE_ END_WHILE: RET INBINARY _ ENDP LPMTADN TREE ADTRAN ERNE NATE ADDED ER EDE EERE DETER DEED TEAR EREEDEDT EREDAR ORDER NOTED REEDED ADDER BADER YR Chapter Eight b) by following the algorithm: RANDOM PROC p : start with any number in the range PUSH BX PUSH DX SHL AX,1 — ; shift left once MOV DX,AX SHL DX,1 XOR AX,DX _ ;xor bit-14 with bit-15 TEST DX,8000h 5 XO) JZ NOT_ONE OR AX,I e JMP CL_BIS _ jclear bit-15 NOT_ONE: AND AX,0FFFEH CL_BI AND AX,7FFFH POP DX POP BX RET RANDOM _ENDP ad Waseem RARE RR LS PAID IDA D DAD DISD A SSAA EASA IPSS D DDD D DDD PD DAD DADS DPD LILA IAAI VAI A RIAD I AAAS LA AAAS IA IDA DA IASI I DIA DEIDI AD ADI DIED PRAEEAERAR ERE EERE R RR BR te SEALER EEDEDTERERAN ORDER NONE D REEDED ADEE ER BADER ER Chapter Eight °) OUTBIN PROC MOV BX. MOV CX,16 start ROL BX,1 JC ONE copy MOV AH,2 MOV DL,’ INT 21H JMP Li ONE: MOV AH.2 MOV DL, INT 21H LI LOOP start RET OUTBIN ENDP Assembly Language Pr SRNR RR * ? z 5 3 $ , ; 2 ? 3 $ z : 3 $ 2 3 3 3 5 : : i $ : 2 $ 5 3 3 5 3 ; ; $ $ 3 $ ; $ $ ? 3 : $ ; 3 $ : $ f ? 3 $ 3 $ PEE EEE ED > * 3 3 TAAEAEEREEDEDT ERODE ORDER NONE O DEED OR ADDENDA ERED Chapter Eight The full program looks like -MODEL SMALL stack 64 -DATA Counter DB 100 r Counter2 DB 4 +4 1 Ir -CODE Main PROC MOV AX,@DATA MOV DS,AX CALL INBINARY MOV AX,BX MOV D4 POP AX CALL RANDOM CALL OUTBIN PUSH AX * 3 - z 3 - - 3 3 ? 3 3 - 3 2 - 3 $ > 3 t - z z 2 t $ - t 3 3 - 3 $ - 2 $ 3 3 t 3 : 3 2 3 - 2 $ 3 ? 3 - 3 $ 2 2 - 2 3 - 3 3 3 ; LPAI IAAI AI AAAI IAAI AIDED AIDEN SSID PEAT MOV AH,2 MOV DL,20H INT 21H Assembly Languay a M SRR PER RR te Bt Be sea LPNTEDDE AED ADDER DENNEN ANNA DEDD DEED RADA D EDDA ONES o Pa Chapter Eight DEC counter2 CMP counter2,0 JE NEW_LINE DEC Counter CMP Counter,0 JNE L10 JMP OUT_ NEW_LINE: MOV AH,2 MOV DL,OAH INT 21H JMP Begin OUT_: MOV AH,4CH INT 21H Main E INCLUDE C:\TEST\RANDOM.ASM END Main Assembly Languay SRNR LALA S IASI PAID AIDA DID DD DD DID DS DDI DADS DR DTD DEDEDE DEED 3 LPATAAAA ADEA T AENEAN EAE E RADON A TODA ENDED i i t i i : : : i i i i Chapter Eight Adeninistiatar: Amer mohammed Ab-thsabah aytrer) Jo110100101101010 ipeetetrseritset Jo000011111001110 Jou11001011100110 SCS Seno 100110100 pesrstrsety trp een 4111110011010 1014000 retretty maton Feist 01101001011 Jo1111100110 Jo000011111001110 Jo011001011100110 Jo100100000001010 Rerststene ty Jo001.100100110100 Mptroberstoset l011001100001111 opEEteEtASECST Jo110001111011000 eemegtpercereess ieccuster TT Renae b eR EET: Metter Jo140100101101010 Jo121110011001031 Port restseterer Preeryeetsesttty Carats SELIG Reteb terest tet ti Pistshoptr tony Eisen see! 001111111010110¢ PiGpro scat pe tc Pycptipeetupte gel Coots CMA SEN Rrra te GEtet sy 0100100011010004 0101110000000014 Foe eat yee 9000010001110110 8021000101100001 Pheruteersesttty Corot tS TSE TIE 9001000101001: 0020111001010101 Postion se etic) 0011121110101100 PiGrro eco to set styrpestea tse oUt CtpeT Pires tebe tt 0100100011010004 3101120000000012 (00001100110111 Poms tue RLSED) 011000101100001 131011301211104 Carats SEE TET Assembly Language Programming PEAR A RRR ET (ra Prsrepeeryt rote 11003100001131 0011111110011010 0110001112011000 Pyerepcpereeeet tt Popes TE Potts ee stot 0111011110010000 0110100102101030 Pybbe trae tots e Parco pebeEt seen) 9013001011100110 teytrnrrnst sty Tasrst sone 101100100110100 popeete tose es 0011001100001131 0011111110011010 (0110001111011000 0110010131111131 Rapier erst 0000111101001 0111011110010000 Resta eStoty Pybbrehroe nists rrr pEREETAISEET) 0100100000001010 Roars tat econo ty Posenostasetat) MScpeECS Troe nN 0011001100001111 PSSerteest Sets 0) * 3 Perproaeereotges 0010101000100013 Penrer stata Shit 0100100011010001 0101110000000011 Peepers et set SSE SET oberon steer! 0211011101111101 CSCS CSEECSEN petbtornstac sty 9010111001010103 secrete eset peRESe tot HT 0101011010111 Pecstope stot iat 0010101000100013 Poron cSt e TST Petter ene PrnpeE tintin et Perorep bird ey ees 9000010001110110 9011000101100003 0241011401111101 Poa TRCS TT RROTE estos cscs 0010111001010103 Pabetrrntey eee) PoyeeEetetoU Ete: PICSTSErS TEE Petstoaeetoetrat rte ee Pecos tte Cst Muhammad Waseem PORTLERERENRD ERR E ER RRR a DX AX a) 0000 0018 b) 000F F000 c) FFFF FFFB d) 0000 8000 e) Ile (2) AX a) OABO b) FABO c) 00AB d) FFF6 GB) DX a) 0001 b) 000E c) FFFF d) divide overflow LALA SAIS DADA DDD DD DASA DADDIES D ED DPD TED D REDD Chapter Nine LPMTADNTRERD EDTA NENA E AN AE NATE E NEPEAN E EERE DETER CF/OF 0 1 al : source must be register or M.L AX 0003, OFFF FFEF EEE aenent LPMAADNTRERD ATTEN ERATE AA NADER EDAD ERE DE TERED ET ED Chapter Nine AL 04 02 OF DX a) 0000 b) FFFF °) 0000 ? 3 : 3 = 3 3 3 3 3 z ? 9 (6) a) b) °) FF80 SEA Muhammad Waseem SPER TORE TT LALA SDDS DADA DIDS DDD D DEPTS DDD PEDERI T LPMTADN TATRA TEENA ERNE NATE ENTE PERE DE EERE DETER Chapter Nine M a) MOV AX,5 IMUL A SUB AX,7 MOV A,AX b) MOV AXA SUB AX,B ADD B,10 IMUL B MOV BAX c)MOV AX9 IMUL A MOV BX,6 SUB BX,AX MOV A,BX Programming M LEARNER ERE A A A PIAA IAAI AAA ASAD DADA D DDSI D DISD E DAS DDD DEAD TDD PERE DET PEE EEE EEE LPPTADN TATRA TEENA EAA AA NATE ENDED ER ESE TERED ERED Chapter Nine d)MOV AXA IMUL AX MOV A,AX MOV AX,B E IMUL AX E MOV BX,AX ADD B. MOV A IMUL AX CMP BX,AX 2 c JE SET_CF CLC JMP END_IF SET_CF: STC END_IF: DEED AA AA SAIS DADA DDD DI DADA DADA PSDP SDD DAD PDE 2 LALA S DAI DA ADI DDD DDD EDAD DDS D DDD REEDED PADDR Chapter Nine z z gramming Exercises 3 = : (8) t : : We check for overflow in 2 steps: z 1. after line 42 we check for overflow if DX not zero t CMP DX,0 t INE @NOT_DIGIT : 2. after line 44 we check for overflow if there carry 3 JC @NOT_DIGIT t 3 : You can see the procedure in Appendix C “INDEC2 t ? = : : z ? : z z $ 3 3 z : : $ : z 3 ? $ 3 : 3 : 3 z 3 z z t ; 3 : Assembly Language Programming Muhammad Waseem z PERTEE RARER ARERR aneet PERERA N EET LPOTADN TREE T DAE RED NNER NAAN ATER DDE PERE SE EERE DETER LPMTADN TREAD TTT E NERA E ANDEAN AERA DEP ER ESTE ERED ETE R Chapter Nine SMALL “STACK 64 DATA MI DB OAH.ODH,'THE TIME IS $ CODE MAIN PROC MOV AX,@DATA i MOV DS,AX CALL INDEC MOV DX.0 it x MOV BX,3600 ec=l DIV BX PUSH AX PUSH DX MOV AH.9 LEA DX.MI INT 21H POP DX POP AX CALL OUT! PUSH DX EEE ED LPLA DAA DA DADA DD DADE D DADE DADDIES DDE SPEDE SRT LPMTADE TREATED TENN AANA NATE EDD E PER ENE TERED ET ER Chapter Nine MOV AF MOV DL INT 21H POP AX MOV BX,60 MOV DX.0 DIV BX CALL OUTDEC PUSH DX MOV AH,2 MOV DL,’ INT 21H POP AX CALL OUTDEC MOV AH,4CH INT 21H MAIN ENDP INCLUDE C:\TEST\OUTDEC.ASM INCLUDE STMNDEC.ASM END MAIN You can get procedures code that included above from Appendix C ,est :is name for folder in c:\ that contain procedures Assembly Language Programming DEEN EEER ELS LT TNS SS tS PS A ee tt ADIDAS DASA DADA DAD DD DID DD DID DADA DREAD PPD E DRED PRR LEADER PRADEEP PERERA NN 100 Chapter Nine Sed Ter Erroee t z $ : 2 : : $ z t Se see rere Assembly Language Programming Muhammad Waseem PEAERELAEER EERE RE RRR RRR A A A A Be te ? . 3 2 ? 2 t ; 3 Fae LPATADNTRERD TTT E AER NERA AA NATE EDD E PER ESE ERED ETE R iti hapter Nine (10) Note: Half = 50 cents Quarter = 25 cents Dime = 10 cents Nickle = 5 cents Penny = I cents .MODEL SMALL -DATA START DBOAH,ODH HLF DB ?, Half" QUA DB ?, Quarter" DIM DB ?,; Dimes NIC DB ?, Nickels" PEN DB ?, Pennies ','$ -CODE MAIN PROC MOV AX,@DATA CALL INDEC MOV BL.SO Ola DIV BL ADD AL,30h ¢ IT MOV HLF,AL AA AA SAAS DADDIES DDD DAD DID TIDES DASA D DEED PPAR P PD DEE EEE * LPMTADN TREAD ATTENDANT AN AA NATE EDDA PONENT ORE E DETER MOV AL, MOV AHO MOV BL,25 DIV BL. ADD AL,30h MOV QUA,AL- MOV AL,AH MOV AHO MOV BL,10 :DIM DIV BL ADD AL30H MOV DIM, AL MOV AL,AH MOV AHO MOV BL.S. DIV BL ADD AL,30h MOV NIC,AL ADD AH.30h MOV PEN, AH MOV AH.9 LEA DX,START INT 21H AD AA SAAS DADA DDD DIDI D ADEA EIS DDS DDD ADDED EBRD DEED DPI PPADS LAI PI ADAP ADADIAEIDEIDEI SSDS ADDED EDT LEAD TANNER RNR ARN TD MOV AH4ACH INT 21H MAIN ENDP INCLUDE C:\TEST\INDEC.ASM END MAIN ae est) Tae aro asa enn ast) Pea ed ead Serer) er acs S are arsed ara Pet rst ae 0 Pets oer) PDIP LI EDD EDD PEIED EIDE PEP IPEIERVE PEPER ED BIA ADI VIII DIDS ID IAAT PALL LP OPEL RPP IDLE IPED ELDRED EPP TH RTE TPT, Assembly Language LPMTAAN TREAT TEENA AANA NATE ADDED ERENT ERED ENED 104 -MODEL SMALL -DATA MI DB OAH,ODH, ‘enter M: $ M2 DB 0AH,ODH,'enter N : $ M3 DB 0AH,ODH,'RI -CODE MAIN PROC MOV AX,@DATA MOV DS,AX MOV AH,9 LEA DX.MI INT 21H CALL INDEC MOV BX,AX MOV AH,9 LEA DX,M2 INT 21H CALL INDEC ; PUSH AX MOV AH,9 LEA DX.M3 INT 21H MOV AH,2 MOV DL, LALA D AAI DA ADA DADA DD EDD DADS PAID A DDD EDP EEE Assembly La ramming LENE RARER RR et ete teen ten tenant nen ete tt ten tn ttt tn tn ten tet te 10s ? 3 , 3 $ f ? : 3 3 3 $ $ 3 $ ; 3 : 3 z ; : f : $ $ 2 3 3 3 5 : 3 ; 3 ; $ $ z 3 3 3 ; : $ ; $ ? $ z 3 z : $ f : ; 3 $ : 3. Chapter Nine INT 21H POP AX XCHG AX, BX WHILE MOV CX,10, MOV DX,0 IMUL CX DIV BX CALL OUTDEC MOV AX,DX CMP DX,0 JNE WHILE_ MOV AH,4CH INT 21H MAIN ENDP DE C:\TEST\INDEC.ASM EST\OUTDEC.ASM mad Waseem SRR Te LEEPER EERE LENNART AARNE Chapter Nine 3 t Note 3 EB Administrator, Amer Al-khsabah z t Seco ee Pa 3 RESULT IS .75 \TEST>ch9q1i1 a eee) | : eRe teen ten tetera tenet at ten tn ttt ten tn a tn tet te AD AA SAAD DADA DDI DAD DADA A SPP DA IDA DED BDA DEDEDE Chapter Nine LL SMALL -DATA MI DB OAH,ODH,'ENTER M $' M2 DB 0AH.ODH. M3 DB OAH,ODH,'C INTER N $" “DIS $ -CODE MAIN PROC. MOV AX,@DATA MOV DS,AX MOV AH,9 LEA DX.ML INT 21H CALL INDEC PUSH AX MOV AH. LEA DX,M2 INT 21H CALL INDEC PUSH AX POP B POP AX LI: MOV DX,0 DIV BX :MIN CMP DX,0 JE GCD_FOUND PRP EP LPPTADE TREE ATTEN RN ERNE NATE REDE PER ESE OEE ER DETER 108 hapter Nine MOV AX,BX N MOV BX,DX JMP LI GCD_FOUND: MOV AH,9 DX.M3 INT 21H MOV AX,BX CALL OUTDEC MOV AH.ACH INT 21H MAIN ENDP INCLUDE CATEST\OUTDEC.ASM INCLUDE C:\TEST\VINDEC.ASM END MAIN AAAI S DASA A DDI DADE DIDS EDITED DIRS B DDD E DRED E PIAA AAAI AA ADIDAS AEA AAAI A DEDEDE A ITD 2 LEAN TANNER RRNA TD Chapter Nine cor) =) \TEST>CH9Q12 (hs aE rus oa eee TEST>CH9QI2 LPP DEAD EDD PEDDLE D DED R ERED EEE EL OREO REED EDD EDD E REDD D EDD RR EEE E HED 3 3 3 3 2 3 2 3 = : 2 3 = Assembly Language Programming Muhammad Waseem PERERA LREER ELENA RR Be Be SER LPMTADNTAERD ATTEN NERA NATE ADDED ERENT EE EER DETER Lo Chapter Ten illegal memory-to-memory illegal [must be 16-bit h) illegal different size ) legal AX=0300h 1) legal AH=01h b) legal ) legal d) iMlegal different size ©) legal : MOV BP,SP MOV [BP],0 MOV [BP+2],0 tage Program ne LENERERARER LE ERR PIAA DAA IAA DADA D DDI IDIDD DDI ADDS DDD DDD DEED DDR DEE PIAS IAAI ADIDAS EDAD DDD ADDED LPMTADNTRERD ADTRAN AANA NATED E PER ESE ERED ERED Mt Chapter Ten DATA ST_ARR DW 5 DUP(?) CODE MOV BX,0 MOV C> MOV BP.SP LI MOV AX,WORD PTR [BP] MOV WORD PTR ST_ARR[BX] , AX ADD BP.2 ADD BX,2 LOOP L1 Assembly Language Pre PEAEEERREER EERE LARS LR RA RA A A Be LD AA SASSI ADIDAS DDD EDTA DDD DDD D DD DEEDES S LAPD REREAD LPMTAD NTR ATTEND NERA AAN ATER EDAD ERE DE TEER DETER Appendix A Low ‘To Run A Progen E Creating and running a program are done in four simple steps: Step #1: ~ Use a text editor or word processor to create a source file, = After that you should save the program with a name and extension *.ASM ~ You must know where you save the file in which folder in which drive (i.e : know the path of the file) Step # 2: = Use an assembler (MASM or TASM) to create a machine language ... (i.e : create the object file with extension *.OBJ) - You can do this by using the command (if we suppose work on TASM) tus followed by the name of the source file with its extension... knoing that you are already in path of file (ex: tasm page 1.ASM) - After doing this assembler do its work work and display some info. Like copy right and most important thig error messages and they are located. - By check no errors you can continue else you must go bace to source file and fix the error. Assembly Language Programming Muhammad Waseem SARE RR TR RR RRR RR AAAS DAS DA ADIDAS DDD D DDE D DEPP D DDD PERE RPP LAAN SDAA IDI AAD EDIE SEDATE AID LPMTADN TREAT TEENA ERNE NATE REDE PER ESE EOLA D ET ER 13 Appendix A Step # 3: use the link program to link one or more object files to create a Run file with extension *.EXE = you can do this by using command .., ‘link with name of file , no need to include the extension here... (ex: link page!) Step # 4: ~ here the executable file is created = you can run it by typing only the name of file ...(ex: page|) here we'll sce partical example explain the four steps. Assembly Language Programming Muhammad Waseem AAAI SPAS DADA DDD DDD D DISD DD DDD D DER DAD PDD E DEP FREED + * LEAD AANA Ma Appendix A Example showing ri Step # 1: Write the code of program by using notepad editor Save the file with name student.ASM in derive C: inside folder its name fest (the file save in path c-\vest\student.asm) Step #2: = Open command prompt (you can open it by typing cmd in run window) =r = $ : 3 3 3 : z ; $ $ ; < z z : z = ; : : 3 t $ : $ : z ; pe the arn ct «program folder, decumen ot tenet uc nd Wandows wil open for you Assembly Language Programming PEAERARR EER EE LAAN SAAD PADIS DADA DDD DISD DDD DDD DEED TDAP A DEEP I .e8 LERDEDED AAT NDAD ADIN ARNT Ls Appendix A ck to drive c:\ = go bi by use the command ed\ Administrator viprus - now enter to folder that has the source file t : ? : z by use the command cd tes IE Administrator: viprus \users\amer>cd oes or eens ~ the file student is visual to us , we can assemle it by fas studentASM ae eo Turbo Assenbler Version 4.0 Copyright (c) 1988, 19 SL ee ea ae eae igtaas Samed If no error yor an continue by link Assembly Language Programming Muhammad Waseem SERRE E RE TE PRATER ERAT R ERR RE AIAN SAAD DADA DDD D RD DADA D DIDI A DADE DED DPD, Fae > > 2 3 + TAAEDEER EEDA TERED N ORDER NONE O DEED OR ED EES DADE ER 116 Appendix A Use tlink command Malai aor ce ee CA Re car OBS ar Buc nari Now you can run the prog with the extesion "exe am by typing only its name or :\TEST>student PAPER EST>student.exe z ; After this if you open the folder test in c: drive you will 4-files Student.ASM Student.OBJ Student. MAP Student.EXE c Assembly Language Pr Muhammad Waseem RR RR LD AA DADS DA DADA DDD DADA DAE PDE DTTP E DEP, PR LPMTADA TREAD TTA E AER NARADA NATED DEEPER ESE TELE DETER 7 Appendix B “ ye, Use ful Pronto: . | Input in Decimal INDEC PROC PUSH BX PUSH CX PUSH DX @BEGIN MOV AH. MOV DL INT 21H XOR BX,BX 8 XOR CX. MOV AH,1 INT 21H CMP AL," JE @MINUS CMP AL,'+' JE @PLUS JMP @REPEAT2 F Assembly Langu SNR ysramming M PEAEREERRAR ERR RB PIAA LDA IAA IAAP ADDI D DIDS ID PADIS DID A IDA DIDS D DPD DEED EADS, BIA SII IDI A AAAI EIDE IAA IAAP EDITED LPOTADN TREAT TEENA ERNE NATE ADDED EN ESE ERLE D ET ED Ls Appendix B @MINUS: MOV CX,1 @PLUS: INT 21H @REPEAT?2: CMP AL,O INGE @NOT_DIGIT CMP AL,'9’ INLE @NOT_DIGIT AND AX.000FH PUSH AX MOV AX,10 MUL BX POP BX ADD BX.AX. MOV AH,1 INT 21H CMP AL,ODH JNE @REPEAT2 MOV AX,BX OR CX,CX JE @EXIT NEG AX @EXIT: POP DX POP CX Assembly Language Progra PERERA RRR AI AA DDSI DA IDA DDD DDD DADA EADS PDD A DDD DEED DDD DPE DDE SPAA SAA IAA IAAI DIDI I AAAI SSAA IIA ATID DATED ITED + * + * TAAEDEEREEDEDT ERODE ORDER NONE ODED OR ADEE ES DADE ED 119 Appendix B POP BX RET @NOT_DIGIT MOV AH,2 MOV DL.ODH INT 21H MOV DL,OAH INT 21H JMP @BEGIN INDEC ENDP. Assembly Language Programming Muhammad Waseem PEALE RR EER NR RR PPPPRAPSERER REDE * ? $ $ 2 z $ $ ; t : : $ 2 = z 2 t ? $ ; $ z t t : : t $ 2 $ 2 : z 2 $ z t : $ 2 2 z 2 $ g : $ : : z 2 2 - = $ : t 2 2 FREE EEE LPMTADE TREATED TENE N ERNE NATE ADDED ERASE ERLE DETER Appendix B Input in Decimal <___| With overflow check — |___> INDEC? PROC PUSH BX PUSH CX PUSH DX @BEGIN: MOV AH. MOV DL. INT 21H total =0 XOR BX,BX negative =false XORCX.CX « read char. MOV AH,1 INT 21H ease char. of MP AL,’ JE@MINUS > CMP AL, JE. @ PLUS JMP @REPEAT2 @MINUS: MOV CX,1 AD AA SAAS DADA DDD DD DD DDD TIDES DDD IRD EDD DDE EET DEED LPMTADN TREAD ATER NERA EAN AA NATE EDDA PERE SE DEERE ET ER 121 Appendix B @PLUS: INT 21H @REPEAT2: CMP ALO cl INGE @NOT_DIGIT ; CMP AL,'9’ INLE @NOT_DIGIT AND AX.000FH PUSH AX MOV AX,10 MUL BX ; JNE @NOT_DIGIT ; POP BX ADD BX,AX ;- JC @NOT_DIGIT MOV AH,1 INT 21H CMP AL,ODH INE @REPE MOV AX,BX OR CX,CX Assembly Language Programming PEAERERAEER EERE RE ERR RR A PIAA LADS DAA A DADA SDDS PADD P SPI DARED EBD DDD DEEDES PP AA BADIA ADIDAS IAAI RIAA AIDES INITIATED A TEDDY TATEDEER ERD EDTERERAS ERD ED RONDO REEDED AREER DOD ER ER Appendix B JE @EXIT NEG AX IT: POP DX POP CX POP BX RET @NOT_DIGIT MOV AH,2 MOV DL,ODH INT 21H MOV DL.OAH INT 21H IMP @BEGIN INDEC2 ENDP wad Waseem SER Be Assembly Language Programming Muha PERERA EREER ELLER RR Be Bt LD AA SAAS PAID I DDI AD DIA DDD DADS D PAID A DARED DDD DDS D DD PED, DEED LPMTADE TREAT TEENA AANA NATE ADDED ERENT TEER DETER Appendix B OUTDEC PROC PUSH AX PUSH BX PUSH CX PUSH DX OR AX,AX IGE @END_IFI PUSH AX MOV DI MOV AH,2 INT 21H POP AX NEG AX @END_IFI: XOR CX,CX MOV BX,10D @REPEATI XOR DX,DX DIV BX PUSH DX INC CX Assembly Language PERE Re LD AA SAAS DA DAD DADA DADA DDD IDI DD DEAD DDD DEEPER DEE EEE EEE > * + * TEAEAEEREEDEDT ERODE ORDER NONE O REEDED DDR EES BORER ED 124 Appendix B OR AX,AX INE @REPEATI MOV AH,2 @PRINT_LOOP: POP DX OR DL30H INT 21H LOOP @PRINT_LOOP POP DX POP CX POP BX POP AD RET OUTDEC ENDP Assembly Language Programming Muhammad Waseem PEALE RR EER ENR RR PPAPREPSERER REDE * ? 3 f 3 z $ $ 3 3 $ $ 3 3 f : $ , 3 3 3 ; : 5 : $ $ 3 z : z ; 3 ; 5 $ ; ; 3 ; 3 3 $ : 3 f ? ; : 3 3 $ $ 3 3 $ ; 3 $ 3 3. DEED TAAEAEEREEDEDT ERODE ERD ED NONE ODER TORE DE EES DED ER ER Appendix B Input in Binary INBINARY PROC. XOR BX, MOV AHI INT 21H x WHILE_: CMP AL,ODH JE END_WHILE AND AL,OFH SHL BX,! OR BL.AL INT 21H JMP WHILE_ END_WHILE: RET INBINARY ENDP PAA LAA LAAN SAAD IA IAAI DAI DADA D EDAD SADA D IAAI A IEP Assembly Language Programming PEALE RAR A te LD AA SAAD DADA DDD DDD D DD DADA PPS PDIP DADRA DD DEED EEDA DED, LENADAA ALAA ANANDA ADTRAN RN BH Appendix B Output in Binary MOV Moy LO; ROL BX, | JC ONE MOV AH,2 MOY DL,0 INT 21H JMP LI ONE: MOV AH,2 MOV DL, INT 21H Li: LOOP Lo RET OUTBINARY ENDP Assembly Language Programming PERERA RRR Re LALA DDSI PAID A DDD DADA DDD I ADDS PDA D DIDS DED DDD PDD EE DATED, FREED LPMTAD NTR T TEENA AANA NATE ADDED EN ESE ERED ENED 127 Appendix B | Input Sting READ_STR PROC NEAR PUSH DI sdi=string to store the data PUSH AX cx=# of char read XOR BX,BX MOV AH,1 WHILEL INT 21H CMP AL,ODH. JEEND_WHILE1 STOSB INC BX JMP WHILE! END_WHILEI:POP AX POP DI RET READ_STR ENDP Assembly Language Programming Muhammad Waseem PERERA AR RR RR RR SPADA LADD DA ADIDAS ADDS D PADDED DADA DDD ERD PPAR EEE PIAA IAAI AA IAAI AAAI ADIDAS SSAA IIIA AAAI ADAPT * > : > + > > * LPPTADA TREAT TEENA EA AAA NADER E PEN EDE ERLE DETER 128 Appendix B 2 Output Sting DISPLAY_STR PROC NEAR PUSH AX ;SI= BEGIN OF STRING PUSH SI ;INPUT CX= OF CHAR TO DISPLAY MOV AH,2 MOV DL.OAH INT 21H LI: LODSB MOV DL.AL INT 21H LOOP LI POP SI POP AX RET DISPLAY_STR ENDP LPAI SAAS DADDIES DDD ADDIS PS PADD DDE EDP DEEDES LP AL IARI ADA EI SPADA ASIA IA SIDI A DESPA DIDDY LOANED NNER DDD E NEDA DRED TEND D EDEN ENED ADDON Hh se FAD Thanks for using this copy Best Wish Written by: Engineer Muhammad Waseem Assembly Language Programming Muhammad Waseem SEREPEDPREPESERRERADESEDRESERESEO ESAS RAR EAH PADI I DAD AAD DADA DDD D DEEDS DADA DI! > > 2

You might also like