汇编语言编写程序完成以下要求,可以任远一个,真诚向各位前辈请教,十分感谢

题目七 加法练习程序
设计内容要求:
随机给出百位数以内的加法算式,并提示输入答案,若正确给出正确提示,若错误给出错误提示,并提示输入答案;按R键继续下一题,按Q键返回DOS。

题目八 数字时钟程序
设计内容要求:
在屏幕上显示一数字时钟,能够实现时间的校准,能够实现定时,即当定时时间到后计算机的BP喇叭给出提示。
需要带文字注释的,衷心感谢
对不起啊,我没有财富了,提了几个问题,没了

第一题 加减乘除
assume ds:data,cs:code,ss:stack

data segment
number db 0dh,0ah,"Please write down your number:",0dh,0ah,0dh,0ah,"$"
write db 50
db ?
db 50 dup(?)
nu1 db 0,0,0,0,0
nu2 db 0,0,0,0,0
nu3 db 0,0,0,0,0
nu4 db 0,0,0,0,0
prt db 0dh,0ah,0dh,0ah,0,0,0,0,0,0
data ends

stack segment stack
db 50 dup(0)
stack ends

code segment
start:
mov ax,data
mov ds,ax
lea dx,number
mov ah,9h
int 21h

lea dx,write
mov ah,0ah
int 21h

lea si,write
lea di,nu1
@1_11:
cmp byte ptr [si+2],30h
jb @1_1
mov bl,byte ptr [si+2]
mov byte ptr [di],bl
inc di
inc si
jmp @1_11
@1_1:
push si
lea si,nu1
lea di,nu2
call @16ZH
lea di,nu3
pop si
push si
@1_2:
cmp byte ptr [si+3],0dh
je @1_21
mov bl,byte ptr [si+3]
mov byte ptr [di],bl
inc di
inc si
jmp @1_2
@1_21:
lea si,nu3
lea di,nu4
call @16ZH

pop si
lea di,nu2
mov ax,word ptr [di]
lea di,nu4
mov bx,word ptr [di]
cmp byte ptr [si+2],2bh
jne @t1
add ax,bx
push ax
jmp @go
@t1:
cmp byte ptr [si+2],2dh
jne @t2
sub ax,bx
push ax
jmp @go
@t2:
cmp byte ptr [si+2],2ah
jne @t3
mul bx
push ax
jmp @go
@t3:
div bx
push ax
@go:

lea ax,prt+4
mov di,ax
mov ax,stack
mov ss,ax
pop ax
call @ZH16

mov ax,4c00h
int 21h

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@16ZH:

push ax
push bx
push cx
push si
push di

xor cx,cx
xor bx,bx
@a1_1:
cmp byte ptr [bx+si],0
je @a1
inc bx
jmp @a1_1
@a1:
mov cx,bx
add si,bx
mov ax,1
mov bx,16
@a2_1:
push bx
push ax
cmp byte ptr [si-1],50h
ja @a2
sub byte ptr [si-1],30h
mov bl,byte ptr [si-1]
@a2_31:
xor bh,bh
mul bx
add ds:[di],ax

pop ax
pop bx
mul bx
dec si

loop @a2_1
jmp exit

@a2:
sub byte ptr [si-1],60h
mov bl,byte ptr [si-1]
add bl,9

jmp @a2_31

exit:
pop di
pop si
pop cx
pop bx
pop ax

ret

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@ZH16:
push ax
push bx
push cx
push dx
push di
push si
mov si,0
mov bx,10h
xor cx,cx

@3_21:
xor dx,dx
div bx
cmp dl,9
ja @3_1
add dl,30h
@3_11:
mov byte ptr ss:[si],dl
inc si
inc cx
cmp ax,0
je @3_2
jmp @3_21
@3_1:
sub dl,9
add dl,60h
jmp @3_11

@3_2:

mov dl,byte ptr ss:[si-1]
mov byte ptr [di],dl

dec si
inc di
loop @3_2

mov byte ptr [di],"$"
lea dx,prt
mov ah,9h
int 21h
pop si
pop di
pop dx
pop cx
pop bx
pop ax

ret

code ends
end start
温馨提示:答案为网友推荐,仅供参考
相似回答