汇编语言1道编程
汇编语言一道编程题,谢谢
为防抽,加一行汉字:程序如下:
dseg segment
Array DW 127FH,6786H,234EH, 96 dup (0),0FFFFH
org 0500h
max DW ?
min DW ?
dseg ends
cseg segment
assume ds:dseg, cs:cseg
start:
mov ax, dseg
mov ds, ax
lea bx, Array
mov cx, 99
mov ax, [bx]
mov max, ax
mov min, ax
add bx, 2
LoopFind:
mov ax, [bx]
cmp ax, max
jbe Skip1
mov max, ax
Skip1:
cmp ax, min
jae Skip2
mov min, ax
Skip2:
add bx, 2
loop LoopFind
mov ah, 4ch
int 21h
cseg ends
end start
在debug里运行到mov ah, 4ch这一句,然后用d ds:0500就能看到结果了。
汇编语言的一道程序设计题 急求!!
; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code
; -------------------------------------
; 功能:显示指定地址(Str_Addr)的字符串
; 入口:
; Str_Addr=字符串地址(要求在数据段)
; 用法: Output Str_Addr
; 用法举例:Output PromptStr
Output MACRO Str_Addr
lea dx,Str_Addr
mov ah,9
int 21h
EndM
; -------------------------------------
; 功能:输出回车换行
Output_CTLF proc Near
push ax
push dx
mov ah,02h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
pop dx
pop ax
ret
Output_CTLF endp
; -------------------------------------
; 功能:根据自变量x的值,计算因变量y的值
; 入口:x=自变量
; 出口:在当前光标位置显示y的值
Calculate_y Proc Near
cmp x,1
jnz $+8
mov y,0
ret
cmp x,3
jae $+8
mov y,1
ret
mov y,2
ret
Calculate_y EndP
; -------------------------------------
x db ? ;自变量
y db ? ;因变量
Prompt_x db 'x=$' ;输入x的值提示信息
Prompt_y db 13,10,'y=$' ;显示y的值提示信息
Start: push cs
pop ds
Input_x: Output Prompt_x ;提示输入x的值
mov ah,1
int 21h
cmp al,27 ;Esc?
jz Exit_Proc ;结束程序
cmp al,'1' ;<1?
jb Input_x ;重新输入
cmp al,'9' ;>9?
ja Input_x ;重新输入
and al,0fh
mov x,al ;保存自变量
call Calculate_y ;计算函数值
Output Prompt_y ;提示显示y的值
mov dl,y
or dl,30h
mov ah,2 ;显示一个字符
int 21h
call Output_CTLF
call Output_CTLF
jmp Input_x
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束