µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

¼ÆËã»úÔ­ÀíMCSϰÌâ´ð°¸

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/6/4 17:32:01 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

shift_8 equ 2Ah

ends

stack

data

ss_seg segment

db 256 dup(?)

ss_seg ends code

segment

assume cs:code,ds:data,ss:ss_seg main

proc push xor push mov mov

far ds ax, ax ax

ax, data ds, ax ah, 0

;ÀûÓÃbiosµÄ16ºÅÖжϣ¬É¨Ãè¼üÅ̰´¼ü ;ALÖзµ»Ø°´¼üASCIIÂ룬AHÖзµ»Ø°´¼üɨÃèÂë ;ÅжÏÊÇ·ñΪ»Ø³µ¼ü£¬Êǻسµ¼ü¾ÍÍ˳ö ;×°ÔØÊý¾Ý¶Î¼Ä´æÆ÷ds,ʹָ֮Ïòµ±Ç°Êý¾Ý¶Î

;½«psp+0h´¦¶ÎµØÖ·ºÍÆ«ÒÆÁ¿Ñ¹Èë¶ÑÕ»ÒԱ㷵»ØOS

main_1: mov

int cmp jz cmp jb cmp ja and

16h

al, 0dh

main_exit

al, '1'

main_2

al, '8'

main_2 ax, 000fh

;˵Ã÷°´ÏµÄÊǵÍÒô1-7£¬Óë²Ù×÷½«ASCII ;Âëת»»µ½Êý×Ö1-8

dec shl lea

al al, 1

;½«Êýֵת»»³ÉÒÔ0¿ªÊ¼µÄÊý×Ö£¬ÒÔ±ã´Ó±íÖвéÕÒÆµÂÊÖµ ;½«ÊýÖµ³ËÒÔ2£¬Òòÿ¸öƵÂÊÖµÊÇ×Ö±äÁ¿

bx, Table_L

si, ax di, [bx+si] bx, 5000

;´Ó±íÖÐȡƵÂÊÖµ ;·¢Éùʱ¼ä

main_12:mov

mov mov

call GenSound jmp

main_1

al, shift_1

;ÅжÏÊÇ·ñ°´ÏÂshift+1¼ü

main_2: cmp

jnz mov

main_3

ax, 0

16

jmp main_11 main_3: cmp jnz mov

jmp

main_4: cmp jnz mov

jmp

main_5: cmp jnz mov

jmp

main_6: cmp jnz mov

jmp

main_7: cmp jnz mov

jmp

main_8: cmp jnz mov

jmp

main_9: cmp jnz mov

jmp

main_10:jmp main_11:lea

jmp

main_exit:

ret

al, shift_2

main_4

ax, 2

main_11

al, shift_3

main_5

ax, 4

main_11

al, shift_4

main_6

ax, 6

main_11

al, shift_5

main_7

ax, 8

main_11

al, shift_6

main_8

ax, 10

main_11

al, shift_7

main_9

ax, 12

main_11

al, shift_8

main_10

ax, 14

main_11

main_1

bx, Table_M main_12

;ÅжÏÊÇ·ñ°´ÏÂshift+2¼ü

;ÅжÏÊÇ·ñ°´ÏÂshift+3¼ü

;ÅжÏÊÇ·ñ°´ÏÂshift+4¼ü

;ÅжÏÊÇ·ñ°´ÏÂshift+5¼ü

;ÅжÏÊÇ·ñ°´ÏÂshift+6¼ü

;ÅжÏÊÇ·ñ°´ÏÂshift+7¼ü

;ÅжÏÊÇ·ñ°´ÏÂshift+8¼ü

17

main endp

;·¢Éù³ÌÐò

;Èë¿Ú£ºdiÖдæ·ÅµÄÊǶ¨Ê±Æ÷2µÄ¼ÆÊýÖµ ; bxÖдæ·ÅµÄÊÇÑÓʱµÄʱ¼ä ;³ö¿Ú£ºÎÞ GenSound proc push push push push push push mov out mov mov div out mov out in mov or

out

GenSound_2:

mov

GenSound_1: nop loop dec jnz mov out

pop

ax

;±£»¤ÏÖ³¡

bx cx dx si di

al, 0b6h ;д¶¨Ê±Æ÷ģʽ

43h, al dx, 12h ;¶¨Ê±Æ÷·ÖƵ,533h*896=123280h

ax, 3280h

di

;533h*896/¸ø¶¨ÆµÂÊ 42h, al ;д¶¨Ê±Æ÷2µÄµÍ×Ö½Ú

al, ah

42h, al ;д¶¨Ê±Æ÷2µÄ¸ß×Ö½Ú

al, 61h ;µÃµ½µ±Ç°61h¶Ë¿ÚµÄÉèÖÃ,²¢±£´æÔÚahÖÐ

ah, al

al, 03h ;´ò¿ªÑïÉùÆ÷·¢Éù

61h, al

cx, 3000

GenSound_1 bx

GenSound_2

al, ah

;¹Ø±ÕÑïÉùÆ÷

61h, al di

;»Ö¸´ÏÖ³¡

18

pop si pop dx pop cx pop bx pop ax

ret

GenSound endp

code ends

end

main

19

ËÑË÷¸ü¶à¹ØÓÚ£º ¼ÆËã»úÔ­ÀíMCSϰÌâ´ð°¸ µÄÎĵµ
¼ÆËã»úÔ­ÀíMCSϰÌâ´ð°¸.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c6ia3p84nq347hq70zb090vngk58yua010h8_4.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©
ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top