求大神解答汇编题目,谢谢
发布网友
发布时间:2023-11-29 17:43
我来回答
共3个回答
热心网友
时间:2024-12-11 20:46
题主采纳的答案,是错误的。
截图如下:
将其改正,如下:
仅用 20 几行,即可完成。
另外,本题目只是一个小小的作业题,并没有要求写出完整程序。
如果出现在考题中,也就是 10 分之内而已。并不需要长篇大论。
所以,仅需写出下面几行,即可得满分:
题目没有要求显示,所以,显示,是不需要的。
这种题目,应该怎样回答才对,自学成才的人,是不懂的。
没有经过专业的训练,只会画蛇添足。
热心网友
时间:2024-12-11 20:47
assume cs:code
code segment
x: dw 8978h
y: dw 1545h
z: dw 0789h
min: dw 0
start:
mov ax,0b800h ;显示缓冲区
mov es,ax
mov di,160*12 + 80 ;显示的行列位置
mov si,0
mov ax,cs:[si] ;将x的字型数据存入ax
mov bx,cs:[si+2] ;将y的字型数据存入bx
mov cx,cs:[si+4] ;将z的字型数据存入cx
mov si,offset min ;获取min的偏移地址
call s ;调用子程序,最值的比较
call show_min ;调用子程序,显示最小值
mov ax,4c00h
int 21h
s: cmp ax,bx
jg s1 ;如果ax > bx 跳转到s1标号处
cmp ax,cx
jg s2 ;如果ax > cx 跳转到标号s2处
mov cs:[si],ax ;以上跳转不成立,得出ax为最小值
ret
s1: cmp bx,cx
jg s3 ;已知ax>bx,所以bx比较cx,如果bx>cx跳转,否则继续运行
mov cs:[si],bx ;以上跳转不成立,得出bx为最小值
ret
s3: mov cs:[si],cx ;已知bx>cx,所以cx是最小值
ret
s2: mov cs:[si],cx ;第一次没跳转ax<bx,第二次跳转ax>cx,所以cx最小
ret
show_min: mov dx,cs:[si] ;假如min里的数值为2324h
xor ax,ax ;用ax寄存器临时存放数据
xor cx,cx
mov cl,4 ;用于位移的次数
mov ah,dh
mov al,dl
shr ah,cl ;2324h中高位的02h
and dh,00001111B ;2324h中高位的03h
shr al,cl ;2324h中低位的02h
and dl,00001111B ;2324h中低位的04h
add al,30h ;加上30h,获得对应ASCII中的字符
add ah,30h
add dh,30h
add dl,30h
mov es:[di],ah ;写入显示缓冲区显示,所映射的字符为2
mov es:[di+2],dh ;所映射的字符为3
mov es:[di+4],al ;所映射的字符为2
mov es:[di+6],dl ;所映射的字符为4
mov es:[di+8],byte ptr 'H'
ret
code ends
end start来自:求助得到的回答
热心网友
时间:2024-12-11 20:47
CODE SEGMENT
ASSUME CS:CODE
X DW ?
Y DW ?
Z DW ?
MIN DW ?
START: PUSH CS
POP DS
PUSH CS
POP ES
MOV AX,X
MOV MIN,AX
MOV AX,Y
CMP AX,MIN
JGE @1
MOV MIN,AX
@1:
MOV AX,Z
CMP AX,MIN
JGE @2
MOV MIN,AX
@2:
MOV AH,4CH
INT 21H
CODE ENDS
END START