do mo a ri ga do
第一个 从0500H这个单元起的1000个数,找出最小的,放入1000H中
- Assembly code
[size=18px]DATAS SEGMENT DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATAS MOV DS,AX MOV BX,OFFSET 0500H MOV CX,999 MOV AL,[BX]AGAIN: INC BX CMP AL,[BX] JLE NEXT MOV AL,[BX]NEXT: DEC CX JNZ AGAIN MOV BX,OFFSET 1000H MOV [BX],AL RETSTART ENDP CODES ENDS END START[/size]
第二个 以“#”(要求是以空格开头,我不知道怎么做>_<)开头,以“$”结尾的一个串,要求统计中间字符的个数
- Assembly code
[size=18px]DATAS SEGMENT STRING DB '#','1','2','3','$' DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX LEA BX,STRING MOV CX,0AGAIN: INC BX MOV AL,[BX] CMP AL,'$' JNZ NEXT JMP EXITNEXT: INC CX JMP AGAINEXIT: MOV AH,4CH INT 21HCODES ENDS END START[/size]
第三个 两个多字节的数相加,NUMBER的第一个单元放字节的个数,接着第一个多字节数,第二个多字节数,相加的结果放在第二个多字节数的后面 >_<
- Assembly code
[size=18px]DATAS SEGMENT NUMBER DB 8,01H,02H,03H,04H,01H,02H,03H,04H COUNT DB ? DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX MOV BX,OFFSET NUMBER MOV AX,[BX] MOV BP,AX MOV COUNT,AL MOV DI,OFFSET NUMBER+[BP]+1 DIV CL MOV BP,AX MOV SI,OFFSET NUMBER+[BP] AGAIN: MOV AL,[SI] MOV [DI],AL INC DI INC SI DEC CL JNZ AGAIN MOV AH,4CH INT 21HCODES ENDS END START[/size]
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
lz在日企?