global _start
section .data
var dq 12494F04A6344129h
msg db "The number of times 4 present in the given number"
len equ $-msg
novar db 00
section .bss
section .text
mov dl,0Ah
mov cl,10
_start :
mov rsi,var
up: mov al,byte ptr [rsi]
mov ah,00
div dl
cmp ah,04
je dn
jne dn1
dn: inc byte[novar]
dn1: inc rsi
dec cl
jne up
jmp exit
exit: mov eax,4
mov ebx,1
mov ecx,msg
mov edx,len
int 80h
mov eax,4
mov ebx,1
mov ecx,novar
mov edx,1
int 80h
mov eax,1
mov ebx,0
int 80h
答案 0 :(得分:1)
Nasm没有使用" ptr" - 那甚至不会聚集。
前两行 - 在dl
标签之上 - 从不执行,因此这些寄存器永远不会被初始化。这可能是引起异常的原因。 len
可能为零!
'0'
很好 - 它是等同的,而不是变量。
您可能希望在打印之前将字符novar
添加到{{1}}。
这些对我来说都没什么用。你确定这是你要回答的问题吗,@Shubham Satpute?