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: