組合語言 輸出10 10000的所有回文數

2021-09-19 12:27:53 字數 1104 閱讀 5681

;編寫程式,求10到10000之間所有回文數並輸出。要求每行輸出10個數

;此時得到的是n的各個位的逆序序列。將這個逆序序列再組合

;成乙個新的整數m,若m=n,則n是回文數

include vcio.inc

.data

frmstr byte "%d ",0

frmstr2 byte 0ah,0

.code

main proc

;ecx 10-10000;;

mov ecx,10

xor ebx,ebx ;統計回文數個數,夠十個清零

jmp whilelab

entry:; ;

mov eax,ecx

xor edi,edi ;edi used to count reversed number,init 0

entry2:

xor edx,edx

mov esi,10;esi臨時放下被除數

div esi ;edx餘數 eax 商

;edi = edi*10 + edx

; 錯;mov edi,edi*10

imul edi,10

add edi,edx

;eax = eax

cmp eax,0

ja entry2

; cmp edi,ecx ;判斷倒序之後和正序是否一致

jne next

; inc ebx ;是回文數,回文數個數+1

pushad

invoke printf ,offset frmstr,ecx

popad

cmp ebx,10 ;如果夠十個回文數,清零ebx

jne next2

pushad

invoke printf ,offset frmstr2

popad

xor ebx,ebx

next2:

; next:

; inc ecx

whilelab:

cmp ecx,10000

jbe entry

retmain endp

end main

組合語言 AT T組合語言

這兩天的pwn題環境都是在linux中,採用的組合語言是 at t 格式。之前學習的是intel格式的8086彙編,今天學習了下at t組合語言。基於x86 架構的處理器所使用的彙編指令一般有兩種格式 操作intel格式at t格式 暫存器命名 push eax pushl eax 常數 立即運算元...

組合語言實現Hello World的輸出

16位的組合語言實現 hello world!的難度在於 1.了解int 21h 的9號中斷呼叫 lea dx,字串的開頭或mov dx,offset 字串的開頭 mov ah,09h int 21h 2.在定義字串的時候要在末尾加上 作為字串的結束標誌。3.源 data segment 定義資料段...

組合語言 彙編指令

功能 用來進行資料傳輸。以 mov a,b 為例,相當於a b。具有以下形式 mov 暫存器,資料 mov 暫存器,暫存器 mov 暫存器,記憶體單元 mov 記憶體單元,暫存器 mov 段暫存器,暫存器 功能 用來做加法。以 add a,b 為例,相當於a a b。具有的形式,和 mov 一樣。功...