汇编语言:将AX中的数以无符号十进制形式输出显示。

1、编写程序,将AX中的数以无符号十进制形式输出显示。
用到的指令有mov、cmp、无条件转移指令jmp、带条件转移指令je、ja、jb等,
div、push、pop、add和输出一个字符的功能函数mov ah,2 int 21h。
注意:循环之前要对用到的寄存器进行初始值设定?
循环使用的是while形式还是do-while形式?
比较指令之后,可以跟带条件转移指令,转移条件是什么?
此处要考虑如何跳出循环(即结束循环),要想清楚条件成立怎么走,条件不成立怎么走?
无条件指令jmp应该跳转到哪里才能构成循环?
计数器用什么用处?

垃圾汇编,麻烦的不行,以下是此题分析

mov ah, 1
    int 21h
    mov ax, 123; 将 ax 赋值 123
    mov cl, 10; cl 是每次 除以 10
    mov ch, 0; 计算 除了多少次,也就是有几位
    
L0:	div cl; ax 除以 cl
	push ax; 此时的商存储在 al 中,
	;余数存储在 ah 中,此时 ax = ah
	add ch, 1
	mov ah, 0
	cmp ax, 0;如果 ax 是 0,说明除干净了
	jne L0
	
again: cmp ch, 0; 此时 ch 的值就是位数,每次出栈,
;然后 ch 减一即可 
	je over
	pop dx; 把栈顶元素存储到 dx 中
	mov dl, dh;然后将 dl 的值等于 dh
	add dl, 48
	mov ah, 2
	int 21h
	
	; write by 唐昊翔
	dec ch
	jmp again
over:

你可能感兴趣的:(汇编)