·¢²¼Ê±¼ä : ÐÇÆÚÈý ÎÄÕ»ã±à¿Îºó´ð°¸¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ
¡²Ï°Ìâ3.23¡³ÈçºÎÓÃÖ¸Áî´úÂë´úÌæ.startupºÍ.exitÖ¸ÁʹµÃÀýÌâ3.1aÄܹ»ÔÚMASM 5.xÏ»ã±àͨ¹ý£¿
¡²½â´ð¡³ ;lt301a.asm(ÎļþÃû)
.model small .stack .data
string db ?Hello,Everybody !?,0dh,0ah.?$?
.code start: mov ax ,@data
mov ds,ax mov dx,offset string
mov ah,9 int 21h mov ax ,4c00h
int 21h end start
¡²Ï°Ìâ3.24¡³´´½¨Ò»¸öCOM³ÌÐòÍê³ÉÀýÌâ3.1µÄ¹¦ÄÜ¡£
¡²½â´ð¡³ £»lt301a,asm .model tiny .code .startup mov dx,offset string
mov ah,9 int 21h .exit 0
string db 'Hello,Everybody!'0dh,0ah,'$' £»
end
¡²Ï°Ìâ3.25¡³°´ÏÂÃæÒªÇóдһ¸ö¼ò»¯¶Î¶¨Òå¸ñʽµÄÔ´³ÌÐò
£¨1£© ¶¨Òå³£Á¿num£¬ÆäֵΪ5£»Êý¾Ý¶ÎÖж¨Òå×ÖÊý×é±äÁ¿datalist£¬ËüµÄÍ·5¸ö×Öµ¥ÔªÖÐÒÀ´Î´æ·Å
-1¡¢0¡¢2¡¢5ºÍ4£¬×îºó1¸öµ¥Ôª³õÖµ²»¶¨£»
£¨2£© ´úÂë¶ÎÖеijÌÐò½«datalistÖÐÍ·num¸öÊýµÄÀۼӺʹæÈëdatalistµÄ×îºó1¸ö×Öµ¥ÔªÖС£
¡²½â´ð¡³ .model small .stack .data num equ 5 datalist dw -1,0,2,5,4,?
.code .startup
mov bx,offset datalist
mov cx,num xor ax,ax
again: add ax,[bx]
inc bx inc bx loop again mov [bx],ax .exit 0 end
¡²Ï°Ìâ3.26¡³°´ÏÂÃæÒªÇóдһ¸öÍêÕû¶Î¶¨Òå¸ñʽµÄÔ´³ÌÐò
£¨1£©Êý¾Ý¶Î´ÓË«×ֱ߽翪ʼ£¬ÆäÖж¨ÒåÒ»¸ö100×Ö½ÚµÄÊý×飬ͬʱ¸Ã¶Î»¹×÷Ϊ¸½¼Ó¶Î£»
£¨2£©¶ÑÕ»¶Î´Ó½Ú±ß½ç¿ªÊ¼£¬×éºÏÀàÐÍΪstack£»
£¨3£©´úÂë¶ÎµÄÀà±ðÊÇ?code?£¬Ö¸¶¨¶Î¼Ä´æÆ÷¶ÔÓ¦µÄÂß¼¶Î£»Ö÷³ÌÐòÖ¸¶¨´Ó100h¿ªÊ¼£¬¸øÓйضμĴæ
Æ÷¸³³õÖµ£»½«Êý×éÔªËØÈ«²¿ÉèÖÃΪ64h¡£
¡²½â´ð¡³
stack segment para ?stack?
dw 512 dup(?) stack ends data segment array db 100 dup(?)
data ends code segment ?code?
assume cs:code,ds:data,es:data,ss:stack
org 100h start: mov ax,data mov ds,ax mov es,ax mov di,offset array
mov al,64h mov cx,100
cld rep stosb mov ax,4c00h
int 21h code ends end start
¡²Ï°Ìâ3.27¡³±àÖƳÌÐòÍê³ÉÁ½¸öÒÑ֪˫¾«¶ÈÊý£¨4×Ö½Ú£©AºÍBÏà¼Ó²¢½«½á¹û´æÈëË«¾«¶È±äÁ¿µ¥ÔªSUM
ÖУ¨²»¿¼ÂÇÒç³ö£©¡£
¡²½â´ð¡³ £»xt327.asm .model small
.stack 256 £»¶¨Òå¶ÑÕ»¶Î´óСΪ256¸ö×Ö½Ú
.data
A dd 11223344h £»¶¨ÒåÁ½¸öË«×ÖµÄÊý£¨ËæÒ⣩
B dd 77553311h
sum dd ? £»¶¨Òå½á¹û£¬Ö´ÐкóΪ£º88776655h
.code .startup
xor si, si £»Ïà¶ÔÓÚ±äÁ¿µÄλÒÆÁ¿ÇåÁã mov cx, 2 £»·Ö¸ßµÍ×Ö·Ö±ðÏà¼Ó£¬¹²Á½´Î
clc £»ÇåÁãcf
again: mov ax, word ptr A[si] £»È¡µÚÒ»¸öÊýµÄÒ»¸ö×Ö£¨ÏȵÍ×Öºó¸ß×Ö£© adc ax, word ptr B[si] £»È¡µÚ¶þ¸öÊýµÄÒ»¸ö×Ö£¨ÏȵÍ×Öºó¸ß×Ö£© mov word ptr sum[si], ax £»´æºÍµÄÒ»¸ö×Ö£¨ÏȵÍ×Öºó¸ß×Ö£©
inc si £»ÐÞ¸ÄλÒÆÁ¿Ö¸ÏòÏÂÒ»¸ö×Ö£¨¼Ó2£©
inc si
loop again £»cx=cx-1 ,if cx<>0 ,jump again
.exit 0 end
¡²Ï°Ìâ3.28¡³±àÖƳÌÐòÍê³É12H¡¢45H¡¢0F3H¡¢6AH¡¢20H¡¢0FEH¡¢90H¡¢0C8H¡¢57HºÍ34HµÈ10¸ö
×Ö½ÚÊý¾ÝÖ®ºÍ£¬²¢½«½á¹û´æÈë×Ö½Ú±äÁ¿SUMÖУ¨²»¿¼ÂÇÒç³ö£©¡£
¡²½â´ð¡³ .startup
xor si, si £»Î»ÒÆÁ¿ÇåÁã mov al, bdata[si] £»È¡µÚÒ»¸öÊý mov cx, num-1 £»ÀÛ¼Ó´ÎÊý again: inc si £»Ö¸ÏòÏÂÒ»¸öÊý
adc al, bdata[si] £»ÀÛ¼Ó loop again £»ÈçδÍ꣬¼ÌÐøÀÛ¼Ó mov sum, al £»ÍêÁË£¬´æ½á¹û
.exit 0 end
¡²Ï°Ìâ3.29¡³½á¹¹Êý¾ÝÀàÐÍÈçºÎ˵Ã÷¡¢½á¹¹±äÁ¿ÈçºÎ¶¨Òå¡¢½á¹¹×Ö¶ÎÈçºÎÒýÓã¿
¡²½â´ð¡³
½á¹¹ÀàÐ͵Ä˵Ã÷ʹÓÃÒ»¶ÔαָÁîSTRUCT£¨MASM5.xÊÇSTRUC£¬¹¦ÄÜÏàͬ£©ºÍENDS¡£ËüÃǵĸñ
ʽΪ£º