📄 exp4.asm
字号:
.model small
.386
;SSEG SEGMENT PARA STACK 'stack'
; dw 100h dup(0)
;SSEG ENDS
;DSEG SEGMENT
.data
jcout dd 2 dup(0)
;DSEG ENDS
;ESEG SEGMENT
;ESEG ENDS
;CSEG SEGMENT
; assume cs:CSEG, ds:DSEG, es:ESEG, ss:SSEG
.code
outchar MACRO CH ;输出一个字符ch
PUSH AX
PUSH DX
MOV DL,CH
MOV AH,2
INT 21H
POP dX
POP aX
ENDM
myend MACRO ;程序结束
mov ah,1
int 21h
mov ax, 4c00h
int 21h
ENDM
jiechen MACRO N,JIEGUO ;计算n的阶乘 输入16进制数,输出16进制数edx,eax
LOCAL MULS
PUSH EAX
PUSH EBX
PUSH EDX
PUSH EDI
MOV EBX,N
MOV EAX,1H
MULS: MUL EBX
DEC EBX
JNZ MULS
mov dword ptr JIEGUO, eax
mov dword ptr JIEGUO + 4, edx
; MOV EBX,OFFSET JIEGUO
; MOV EDI,EBX
; MOV [EDI],EDX
; ADD EDI,4
; MOV [EDI],EAX
POP EDI
POP EDX
POP EBX
POP EAX
ENDM
.startup
mov ax, @data
mov ds, ax
; mov ax,eseg
; mov es, ax
;newchar:
; mov ah,1
; int 21h
; sub al,30h
; jl start
; cmp al,9d
; jg start
; cbw
; xchg ax,bx
; mov cx,10d
; mul cx
; xchg ax,bx
; add bx,ax
; jmp newchar
;start:
; MOV ECX,0
; MOV CX,BX
; MOV EDX,0
call input_dec
jiechen eax,jcout
mov edx, dword ptr jcout+4
mov ch,8
rotate:
mov cl,4
rol edx,cl
mov al,dl
and al,0fh
add al,30h
cmp al,3ah
jl printit
add al,7h
printit:
outchar al
dec ch
jnz rotate
mov eax, dword ptr jcout
MOV EDX ,EAX
mov ch,8
rotate1:
mov cl,4
rol edx,cl
mov al,dl
and al,0fh
add al,30h
cmp al,3ah
jl printit1
add al,7h
printit1:
outchar al
dec ch
jnz rotate1
myend
;MAIN ENDP
;CSEG ENDS
.exit
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -