汇编程序实例
1.Êä?öËùÓÐASCII×Ö?û ÖØ??µ?ÓÃDOSÖÐ?ϵÄ02ºÅ×Ó??ÄÜ?????ýÆæ?ÖµÄÊÇ????ÖªµÀΪÊ?Ã?×îºó???öASC
II×Ö?û??ÏÔÊ????öÀ?~~ ?úÂë?ªÊ?
code segment
assume cs:code
main:
mov dh , 0
mov ah , 02h
again:
mov dl , dh
int 21h
mov dl , ' '
int 21h
cmp dh , 255
je exit
inc dh
jmp again
exit:
mov ah , 4ch
int 21h
code ends
end main
;?úÂë?áÊø
2.ÊäÈëÊä?öÒ??ö×Ö?û?? ʵ?ÊÉÏ??Õâ?öÌâÄ?Ö?ÊÇÑ-??Ê?ÓÃDOSÖÐ?Ï01ºÅ×Ó??ÄÜ??ÒÔ?ïµ?ÊäÈë×Ö?û??µÄ?
?ÄÜ??
?úÂë?ªÊ?
data segment
msg db 'Please input a string:' , 0dh , 0ah , '$'
endl db 0dh , 0ah , '$'
s db 100 dup(0) ; ÕâÀïÏàµ?ÓÚ??Òå char s[100] = ""
data ends
code segment
assume cs:code , ds:data main:
mov ax , data
mov ds , ax
input:
mov ah , 09h
mov dx , offset msg
int 21h
mov si , 0
mov ah , 01h
tag_input:
int 21h
cmp al , 0dh
je output
mov s[si] , al
inc si
jmp tag_input
output:
mov s[si] , '$' ;
ÒòΪ09ºÅ??ÄÜÊä?öµÄÊÇÒÔ$?áÊøµÄ×Ö?û????Òò?ËÕâÀïÒª?ÓÉÏ$
mov ah , 09h
mov dx , offset endl
int 21h
mov dx , offset s
int 21h
mov dx , offset endl
int 21h
exit:
mov ah , 4ch
int 21h
code ends
end main
;?úÂë?áÊø
3.ÊÂÏÈÉè??ÃÜÂë??ÈôÊäÈëÕýÈ?ÔòÏÔÊ?"Password correct!"???ñÔò"Password
wrong!"??
Õâ?öÌâµÄ?Ø?üÓÐÁ??ö?º1)ÊäÈëÒ??ö×Ö?û????Õâ?ö?ÉÒÔÍ??ýDOSÖÐ?ϵÄ01ºÅ×Ó?
?ÄÜʵÏÖ
2)?È?ÏÁ??ö×Ö?û????Õâ?ö?ÉÒÔÍ??ýcmpÒ?Î?Ò?Î?µØ?È?Ï
;?úÂë?ªÊ?
data segment
msg db 'Enter you password:' , 0dh , 0ah , '$'
pwd db 'luckyword$'
s db 100 dup(0)
right db 'Password correct!' , 0dh , 0ah , '$'
wrong db 'Password wrong!' , 0dh , 0ah , '$'
data ends
code segment
assume cs:code , ds:data
main:
mov ax , data
mov ds , ax
input:
mov ah , 09h
mov dx , offset msg
int 21h
mov si , 0
mov ah , 01h tag_input:
int 21h
cmp al , 0dh
je compare
mov s[si] , al
inc si
jmp tag_input compare:
mov s[si] , '$'
mov si , 0
tag_compare:
mov ah , s[si]
mov al , pwd[si]
cmp al , ah
jne err
cmp al , '$'
je ok
inc si
jmp tag_compare ok:
mov dx , offset right
jmp output
err:
mov dx , offset wrong
output:
mov bx , dx
mov ah , 02h
mov dl , 0dh
int 21h
mov dl , 0ah
int 21h
mov dx , bx
mov ah , 09h
int 21h
exit:
mov ah , 4ch
int 21h
code ends
end main
;?úÂë?áÊø
4.Ò?ÊÇÊÂÏÈ?ø??Ò??öÃÜÂë??µ?ÊÇÊäÈëÊ???ÏÔÊ?ÊäÈëµÄ×Ö?û??Ö?ÏÔÊ?*
Õâ?ö?ú?òµ?µÄÃÜÂëÑéÖ??ù??Ò?Ñù??µ?ÊÇ?ÁÈë×Ö?ûµÄÊ?ºòÊÇÓÃDOSÖÐ?ϵÄ08ºÅ×
Ó??ÄÜ??
;?úÂë?ªÊ?
data segment
msg db 'Enter you password:' , 0dh , 0ah , '$'
pwd db 'luckyword$'
s db 100 dup(0)
right db 'Password correct!' , 0dh , 0ah , '$'
wrong db 'Password wrong!' , 0dh , 0ah , '$'
data ends
code segment
assume cs:code , ds:data main:
mov ax , data
mov ds , ax
input:
mov ah , 09h
mov dx , offset msg
int 21h
mov si , 0
tag_input:
mov ah , 08h
int 21h
cmp al , 0dh
je compare
mov s[si] , al
mov ah , 02h
mov dl , '*'
int 21h
inc si
jmp tag_input compare:
mov s[si] , '$'
mov si , 0
tag_compare:
mov ah , s[si]
mov al , pwd[si]
cmp al , ah
jne err
cmp al , '$'
je ok
inc si
jmp tag_compare ok:
mov dx , offset right
jmp output
err:
mov dx , offset wrong
output:
mov bx , dx
mov ah , 02h
mov dl , 0dh
int 21h
mov dl , 0ah
int 21h
mov dx , bx
mov ah , 09h
int 21h
exit:
mov ah , 4ch
int 21h
code ends
end main
;?úÂë?áÊø
DOSÖÐ?Ï08ºÅ×Ó??ÄÜ?º
??ÄÜ?º???ø?ØÏÔµÄ?Ó?ê×?ÊäÈëÉè???ÁÈëÒ??ö×Ö?û
?ÎÊý?ºah = 08h
?µ?ØÖµ:al = ?ÁÈëµÄ×Ö?û
5.ÇóºÍ:ÊäÈëÒ??öÕýµÄÊ??øÖÆÊýn??Çó1+2+...+nµÄÖµ??Êä?ö?á?û??
;?úÂë?ªÊ?
data segment
msg1 db 'Please input a positive number:' , 0dh , 0ah , '$'
msg2 db 'The sum is $'
endl db 0dh , 0ah , '$'
temp db 5 dup(0)
data ends
code segment
assume cs:code , ds:data main:
mov ax , data
mov ds , ax
mov ah , 09h
mov dx , offset msg1
int 21h
xor cx , cx
xor dx , dx
mov bh , 10
input:
mov ah , 01h
int 21h
cmp al , 0dh
je input_done
mov dl , al
sub dl , '0'
mov ax , cx
mul bh
add ax , dx
mov cx , ax
jmp input
input_done:
xor ax , ax
calc:
add ax , cx
loop calc
output:
xor si , si
again:
div bh
add ah , '0'
mov temp[si] , ah
cmp al , 0
je again_done
inc si
xor ah , ah
jmp again
again_done:
mov ah , 09h
mov dx , offset endl
int 21h
mov dx , offset msg2
int 21h
tag:
mov dl , temp[si]
mov ah , 02h
int 21h
cmp si , 0
je exit
dec si
jmp tag exit:
mov ah , 0
int 16h
mov ah , 4ch
int 21h
code ends
end main
;?úÂë?áÊø
6.ÊäÈëÒ??ö16?øÖÆÊý ÊäÈëÒ??ö16?øÖÆÊý???á?ûÎÒ???æÔÚbxÖÐ??ÒòΪÃ?ÓÐÊä?ö??Òò?ËÒªÔÚµ?ÊÔÆ?ÏÂ
?Û?ì???ö?Ä?æÆ?µÄ?ä???? ;?úÂë?ªÊ?
code segment
assume cs:code main:
mov cl , 4
mov bx , 0 again:
mov ah , 01h
int 21h
cmp al , 0dh
je exit
xor ah , ah
cmp al , '9'
jbe number
sub al , 'a'
add al , 10
jmp go_on number:
sub al , '0' go_on:
shl bx , cl
add bx , ax
jmp again exit:
mov ah , 4ch
int 21h
code ends
end main
;?úÂë?áÊø
本文档为【汇编程序实例】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。