assembly x86(nasm)的日常

Posted lanclot-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了assembly x86(nasm)的日常相关的知识,希望对你有一定的参考价值。

cs的日常打卡。

技术图片

 

 

data    segment
ENG         db    SUNdayS Coming I Wanna Drive My Car,SUN,SUN$        ;43,35
sun1        db    SUN
swcount        db    0ah,0dh,single word number:,?,?,$
suncount    db    0ah,0dh,SUN:,?,$
data    ends
code    segment
assume    cs:code,ds:data,es:data
start:
            mov    ax,data
            mov    ds,ax    
            mov    es,ax        
            lea dx,ENG        
            mov    ah,9                        
            int    21h
swcount1:                                        
            mov al,ENG[si]
            cmp al,$
            jz     output1
            cmp al,A
            jb     next
            cmp al,Z
            ja     text1
            jmp addswc
text1:        cmp al,a
            jb     next
            cmp al,z
            ja     next
addswc:        inc swcount[21]
            cmp al,S
            jz  strcmp
            jmp next
to:
            pop si
next:        inc si
            jmp swcount1
strcmp:
            push si
            cld
            xor di,di
            lea di,sun1
            lea si,ENG[si]
            mov cx,3
            repz cmpsb
            jnz addcount
            inc suncount[6]
addcount:    
            jmp to

output1:
            xor cx,cx    
            mov al,swcount[21]
            cbw
loopb:
            xor dx,dx
            inc cl
            mov bx,10
            div bx                    ;ax商,dx余
            push dx                    ;余数入栈
            cmp ax,0
            jne loopb
            xor si,si
loopc: 
            pop dx
            or  dl,00110000b
            mov swcount[21+si],dl
            inc si
            loop loopc

            lea dx,swcount    
            mov    ah,9                        
            int    21h                
            or suncount[6],00110000b
            lea dx,suncount
            mov    ah,9                        
            int    21h            
exit:        mov    ah,4ch                        
            int    21h
code    ends
end    start

 

以上是关于assembly x86(nasm)的日常的主要内容,如果未能解决你的问题,请参考以下文章

YASM/NASM x86 程序集中立即数与方括号的基本使用

YASM/NASM x86 程序集中立即数与方括号的基本使用

动手开发操作系统- 0x1

了解汇编、nasm、x86 中的 printf 函数。我不知道为啥这段代码没有打印出任何东西

x86 NASM 使用 printf 打包双打

x86 NASM更改未作为参数传递的地址的值