当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

长江大学:《微型计算机技术及应用课件》第四章习题答案(李华贵)

资源类别:文库,文档格式:DOC,文档页数:10,文件大小:108.5KB,团购合买
4.1 分别指出下列指令中源操作数和目的操作数的寻址方式 (1) MOV EAX,12345678H (2) MOV [ESI],AX (3) MOV 2[EDI],BX (4) MOV 2[BX+SI],DX
点击下载完整版文档(DOC)

习题4部分答案 4.1分别指出下列指令中源操作数和目的操作数的寻址方式 (1) MOV EAX,12345678H (2)MOV [ESI],AX (3)MOV 2[EDI], BX (4)MOV 2[BX+SI], DX (5) MOV AX,[10] (6)MOV EAX, 2[ESI*4] (7)MOV EAX, 2[EBX*8][EDI] (8)MOV EAX, [ESI][EBP+OFFFFOH] (9 ) MOV EAX, 2[EDI=*8][EBP+80 目的操作数的寻址 指令 源操作数的寻址方式 方式 (1) MOV EAX,12345678H 寄存器寻址 立即寻址 (2)MOV [ESI, AX 寄存器间接寻址 寄存器寻址 (3)MOV 2[EDI, BX 变址寻址 寄存器寻址 (4)MOV 2[BX+SI], DX 基址变址寻址 寄存器寻址 (5)MoA,[10] 寄存器寻址 直接寻址 (6)MOV EAX, 2[ESI*4] 寄存器寻址 带有比例因子的变址寻址 (7)MOV EAX, 2[EBX*8][EDI 寄存器寻址 带有比例因子的基址变址寻址 MOV 寄存器寻址 带有位移量的基址变址寻址 EAX,ESILEBP+OFFFFOH] (9)MOV EAX,2EDI8JEBP+80 寄存器寻址 带有位移量和比例因子的基址变址寻址 4.2指出下列指令的错误原因 (1)INC [ESI] (2)MOV AX, BL 3)MOV 2, EA 4)MOV AX, [DX] (5)MOV AX, [BX+BP (6)MOV AX, [SI+DI] (7)MOV AH, 300 (8)MOV [ESI], [EDI (9)PUSH AL (10) POP DH (11)MOV CS, AX (12)MOV SS, AX (13)SHL AX, 3 指令 错误原因 (1)INC LESI] 目的操作数[ES门]类型不明确 (2)MOV AX, BL 源操作数和目的操作数类型不一致 (3)MOV 2, EAX 常数不能作目的操作数

习 题 4 部分答案 4.1 分别指出下列指令中源操作数和目的操作数的寻址方式 (1) MOV EAX,12345678H (2) MOV [ESI],AX (3) MOV 2[EDI],BX (4) MOV 2[BX+SI],DX (5) MOV AX,[10] (6) MOV EAX,2[ESI*4] (7) MOV EAX,2[EBX*8][EDI] (8) MOV EAX,[ESI][EBP+0FFFF0H] (9) MOV EAX,2[EDI*8][EBP+80] 解: 指令 目的操作数的寻址 方式 源操作数的寻址方式 (1) MOV EAX,12345678H 寄存器寻址 立即寻址 (2) MOV [ESI],AX 寄存器间接寻址 寄存器寻址 (3) MOV 2[EDI],BX 变址寻址 寄存器寻址 (4) MOV 2[BX+SI],DX 基址变址寻址 寄存器寻址 (5) MOV AX,[10] 寄存器寻址 直接寻址 (6) MOV EAX,2[ESI*4] 寄存器寻址 带有比例因子的变址寻址 (7) MOV EAX,2[EBX*8][EDI] 寄存器寻址 带有比例因子的基址变址寻址 (8) MOV EAX,[ESI][EBP+0FFFF0H] 寄存器寻址 带有位移量的基址变址寻址 (9) MOV EAX,2[EDI*8][EBP+80] 寄存器寻址 带有位移量和比例因子的基址变址寻址 4.2 指出下列指令的错误原因 (1) INC [ESI] (2) MOV AX,BL (3) MOV 2,EAX (4) MOV AX,[DX] (5) MOV AX,[BX+BP] (6) MOV AX,[SI+DI] (7) MOV AH,300 (8) MOV [ESI],[EDI] (9) PUSH AL (10) POP DH (11) MOV CS,AX (12) MOV SS,AX (13) SHL AX,3 解: 指令 错误原因 (1) INC [ESI] 目的操作数[ESI]类型不明确 (2) MOV AX,BL 源操作数和目的操作数类型不一致 (3) MOV 2,EAX 常数不能作目的操作数

(4)MOV AX, [DX] DX不能作地址寄存器 (5)MvAx,[BX+BP]源操作数寻址方式错两个寄存器都是基址寄存器 (6)MVAX,[S1+Dn]源操作数寻址方式错,两个寄存器都是变址寄存器 (7) MOV AH, 300 300超出A允许范围 (8)M[ESI,[EDI]源操作数和目的操作数不能同时为内存单元地址 (9)PUSH AL 入栈的数据必须是一个16或32位数据 (10)POP DH 出栈的数据是一个16或32位数据,DH是8位寄存器 (11)MoV CS, AX CS值不能由程序员编程该变 (12) MOV SS, AX SS值不能由程序员编程该变 (3)SHAX3移位次数大于1,应先将移位次数送CL 43比较下列两条指令,指出它们的区别 MOV EAX, ESI MOV IESILEAX 解:这两条指令的区别是,指令“MOⅤ EAX, ESI”是将内存单元 DS: ESI中的内容读 到CPU中的寄存器EAX;而指令“MOV[ ESILEAX”是将CPU中寄存器EAX中的内容写 入内存单元DS:[ES1 44比较下列两条指令,指出它们的区别 MOⅤAX,[S LEAAX,ISI 解:这两条指令的区别是,指令“ MOV AX,S”是将内存单元DS:[S中的内容读到 CPU中的寄存器AX;而指令“ LEAAX[S”是将内存单元DS[S的偏移地址送到AX。 45假定(EAX)=12345678H不用计算,写出下面每条指令执行后EAX)=? ① TEST EAX,1 ② XOR EAXEAX ③ SUB EAXEAX ④ CMP EAX8765432lH 解:①(EAX)=12345678H②0③0④(AX)=12345678H 46假定(AX)=1234HBX)=5678H指出下列指令中 ①哪些指令执行后源操作数和目的操作数都不发生变化? ②哪些指令执行后,源操作数和目的操作数都发生变化? ③哪些指令执行后,源操作数不发生变化而目的操作数发生变化? 指令 ① TESTAX,1234 ② AND AX BX ③ SUBAX1234H ④ CMP AX,1234H ⑤ XCHG AX BX 解 ①指令“ TESTAX,1234”和指令“ CMPAX,1234H”执行后,源操作数和目的操作数都 不发生变化

(4) MOV AX,[DX] DX 不能作地址寄存器 (5) MOV AX,[BX+BP] 源操作数寻址方式错,两个寄存器都是基址寄存器 (6) MOV AX,[SI+DI] 源操作数寻址方式错,两个寄存器都是变址寄存器 (7) MOV AH,300 300 超出 AH 允许范围 (8) MOV [ESI],[EDI] 源操作数和目的操作数不能同时为内存单元地址 (9) PUSH AL 入栈的数据必须是一个 16 或 32 位数据 (10) POP DH 出栈的数据是一个 16 或 32 位数据,DH 是 8 位寄存器 (11) MOV CS,AX CS 值不能由程序员编程该变 (12) MOV SS,AX SS 值不能由程序员编程该变 (13) SHL AX,3 移位次数大于 1,应先将移位次数送 CL 4.3 比较下列两条指令,指出它们的区别 MOV EAX,[ESI] MOV [ESI],EAX 解:这两条指令的区别是,指令“MOV EAX,[ESI]”是将内存单元 DS:[ESI]中的内容读 到 CPU 中的寄存器 EAX;而指令“MOV [ESI],EAX”是将 CPU 中寄存器 EAX 中的内容写 入内存单元 DS:[ESI]。 4.4 比较下列两条指令,指出它们的区别 MOV AX,[SI] LEA AX,[SI] 解:这两条指令的区别是,指令“MOV AX,[SI]” 是将内存单元 DS:[SI]中的内容读到 CPU 中的寄存器 AX;而指令“LEA AX,[SI]”是将内存单元 DS:[SI]的偏移地址送到 AX。 4.5 假定(EAX)=12345678H,不用计算,写出下面每条指令执行后(EAX)=? ① TEST EAX,1 ② XOR EAX,EAX ③ SUB EAX,EAX ④ CMP EAX,87654321H 解: ①(EAX)=12345678H ② 0 ③ 0 ④(AX)=12345678H 4.6 假定(AX)=1234H,(BX)=5678H 指出下列指令中 ① 哪些指令执行后,源操作数和目的操作数都不发生变化? ② 哪些指令执行后,源操作数和目的操作数都发生变化? ③ 哪些指令执行后, 源操作数不发生变化而目的操作数发生变化? 指令: ① TEST AX,1234 ② AND AX,BX ③ SUB AX,1234H ④ CMP AX,1234H ⑤ XCHG AX,BX 解: ① 指令“TEST AX,1234”和指令“CMP AX,1234H”执行后,源操作数和目的操作数都 不发生变化

②指令“ XCHG AX,BX”执行后,源操作数和目 的操作数都发生变化 变量 EA ③指令“ AND AX BX”和“ SUB AX1234H”执BUF3H 行后,源操作数不发生变化而目的操作数发生变化 4747阅读下面的程序,回答问题 32H 1.【程序一】 33H DATA SEGMENT BUF DB '1234 BCD 234 N=S-BUF BCD DB N DUP(?) DATA ENDS CODE SEGMENT 567 LSSUME CS: CODE. DS: DATA START: MOV AX DATA MOV DS.AX LEA SI BUF MOV CXN LEA DI BCD+N-1 LOOP1: MOV AL, [SI SUB AL 30H MOV IDIAL INC SI DEC D DEC CX JNE LOOP1 MOV AH.4CH INT 2IH CODE END END START 【问题一】画出内存分配图。 【问题二】说明程序功能程序执行后,从BCD开始的N个字节单元中的内容是什么? 【问题三】找出一条指令代替指令“ SUB AL,30H”,使程序功能不变。 【问题四】如果将代码段中的指令 LEA DI,BCD+N-1改成 LEA DI,BCD: DEC DI改成 INC DI, 其它指令不变,程序执行后,从BCD开始的N个字节单元中的内容是什么? 【问题五】取消数据段的BCD存储区,将处理后的数据放回原处,应如何修改程序? 2.【程序二】 MODEL SMALL DATA STRING DB Assemble Language is powerful N=S-STRING NEWSTR DB N DUP(O) CODE

② 指令“XCHG AX,BX”执行后,源操作数和目 的操作数都发生变化。 ③ 指令“AND AX,BX”和“SUB AX,1234H”执 行后, 源操作数不发生变化而目的操作数发生变化。 4.74.7 阅读下面的程序,回答问题 1.【程序一】 DATA SEGMENT BUF DB '1234' N=$-BUF BCD DB N DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,BUF MOV CX,N LEA DI,BCD+N-1 LOOP1:MOV AL,[SI] SUB AL,30H MOV [DI],AL INC SI DEC DI DEC CX JNE LOOP1 MOV AH,4CH INT 21H CODE ENDS END START 【问题一】画出内存分配图。 【问题二】说明程序功能,程序执行后,从 BCD 开始的 N 个字节单元中的内容是什么? 【问题三】找出一条指令代替指令“SUB AL,30H”,使程序功能不变。 【问题四】如果将代码段中的指令 LEA DI,BCD+N-1 改成 LEA DI,BCD;DEC DI 改成 INC DI, 其它指令不变,程序执行后,从 BCD 开始的 N 个字节单元中的内容是什么? 【问题五】取消数据段的 BCD 存储区,将处理后的数据放回原处,应如何修改程序? 2.【程序二】 .MODEL SMALL .386 .STACK .DATA STRING DB 'Assemble Language is powerful' N=$-STRING NEWSTR DB N DUP(0) .CODE 变量 值 EA BUF → 31H 0 32H 1 33H 2 34H 3 BCD → 4 5 6 7

STARTUP MOV CX. N LEA SI STRING EA DI. NEWSTR REPEAT MOV AL, [SI] IF(AL>='a’)&&(AL<=’z’) SUB AL. 32 ENDIF MOV [DI], AL INC SI INC DI NTILCXZ EXIT END 【问题】写出程序功能,程序执行后,从 NEWSTR开始的N个字节中的内容是什么? 1.【程序一】 【问题一】内存分配图 【问题二】 变量 EA 程序功能是将从BUF开始的连续4个字符1234 转变为4个对应的数值按逆序存放到以变量BCD为F|3|0 首地址的存储单元中。程序执行后,从BCD开始的N 个字节单元中的内容是4321。 32H 【问题三】 33H 用指令“ AND AL, OFH”代替指令“ SUBAL30H 程序功能不变 BCD 【问题四】如果将代码段中的指令 LEA DI,BCD+N-1 改成 LEA DI,BCD; DEC DI改成 INC DI,其它指令不 变,程序执行后,从BCD开始的N个字节单元中的内容 是1234 【问题五】取消数据段的BCD存储区,将经处理后的数据放回原处,修改程序如下 DATA SEGMENT 变量 BUF DB ' 1234' BUF N=S-BUF 31H DATA ENDS CODE SEGMENT 33H 2 ASSUME CS: CODE DS: DATA START: MOV AX. DATA BCD MOV DS.AX LEA SIBUF MOV CXN LOOP1:MOⅴAL[SI 6 SUB AL, 30H

.STARTUP MOV CX,N LEA SI,STRING LEA DI,NEWSTR .REPEAT MOV AL,[SI] .IF (AL >= 'a') && (AL <= 'z') SUB AL,32 .ENDIF MOV [DI],AL INC SI INC DI .UNTILCXZ .EXIT END 【问题】写出程序功能,程序执行后,从 NEWSTR 开始的 N 个字节中的内容是什么? 解: 1.【程序一】 【问题一】内存分配图 【问题二】 程序功能是将从 BUF 开始的连续 4 个字符'1234' 转变为 4 个对应的数值,按逆序存放到以变量 BCD 为 首地址的存储单元中。程序执行后,从 BCD 开始的 N 个字节单元中的内容是 4 3 2 1。 【问题三】 用指令“AND AL,0FH”代替指令“SUB AL,30H”, 程序功能不变。 【问题四】如果将代码段中的指令 LEA DI,BCD+N-1 改成 LEA DI,BCD;DEC DI 改成 INC DI,其它指令不 变,程序执行后,从 BCD 开始的 N 个字节单元中的内容 是 1 2 3 4。 【问题五】取消数据段的 BCD 存储区,将经处理后的数据放回原处,修改程序如下 DATA SEGMENT BUF DB '1234' N=$-BUF DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,BUF MOV CX,N LOOP1:MOV AL,[SI] SUB AL,30H 变量 值 EA BUF → 31H 0 32H 1 33H 2 34H 3 BCD → 4 4 3 5 2 6 1 7 变量 值 EA BUF → 31H 0 32H 1 33H 2 34H 3 BCD → 1 4 2 5 3 6 4 7

MOV ISILAL INC SI DEC CX JNE LOOPI MOV AH.4CH INT 21H CODE ENDS END START 2.【程序二】 程序功能是将从 STRING开始的N个字节中的字符串变成大写存放到从 NEWSTR开始 的N个字节中。程序执行后,从 NEWSTR开始的N个字节中的内容是" ASSEMBLE LANGUAGE IS POWERFUL# 48阅读下面的程序,填空。 1.【程序一说明】用减法实现除法。Ⅹ是被除数,Y是除数,处理结束后商存放在 RESULT 余数存放在 XYMOD。 【程序一】 MODEL SMALL 被除数除数商 0 STACK DATA 2222 余数→ Y DW 2 DATA? 图4-15用减法实现 RESULT DW XYMOD DW CODE STARTUP MOV AX, X Mov BX, Y MOV CX. 0 WHILE① SUB AX BX ENDW MOV RESULT. CX MOV XYMOD A 2.【程序二说明】从BUF开始的11个单元中存放着11个整数,找出这11个数中正数并且 是偶数的个数存入R中。 【程序二】 DATA SEGMENT BUF DB-2,5,-3,6,100,0-20,-9,8,-110,21

MOV [SI],AL INC SI DEC CX JNE LOOP1 MOV AH,4CH INT 21H CODE ENDS END START 2.【程序二】 程序功能是将从 STRING 开始的 N 个字节中的字符串变成大写存放到从 NEWSTR 开始 的 N 个字节中。程序执行后,从 NEWSTR 开始的 N 个字节中的内容是"ASSEMBLE LANGUAGE IS POWERFUL"。 4.8 阅读下面的程序,填空。 1.【程序一说明】用减法实现除法。X 是被除数,Y 是除数,处理结束后商存放在 RESULT, 余数存放在 XYMOD。 【程序一】 .MODEL SMALL .386 .STACK .DATA X DW 7 Y DW 2 .DATA? RESULT DW ? XYMOD DW ? .CODE .STARTUP MOV AX,X MOV BX,Y MOV CX,0 .WHILE _____①____ SUB AX,BX _____②_____ .ENDW MOV RESULT,CX MOV XYMOD,AX .EXIT END 2.【程序二说明】从 BUF 开始的 11 个单元中存放着 11 个整数,找出这 11 个数中正数并且 是偶数的个数存入 R 中。 【程序二】 DATA SEGMENT BUF DB –2,5,-3,6,100,0,-20,-9,8,-110,21 被除数 除数 商 7 2 0 5 2 1 3 2 2 余数→ 1 2 3 ←商 图 4-15 用减法实现除法示意图

R DW DATA ENDS CODE SEGMENT BEGIN: MOV AX, DATA LEA BX, BUF MOV CX, N LOPA CMP BYTE PTR O TEST [BX], BYTE PTR I INCAX NEXT INC BX DEC CX MOVR, AX MOV AH, 4CH INT 21H CODE ENDS END⑧ 1.【程序一】①AX>=BX② INC CX 2.【程序二】 ①$-BUF ② ASSUME CS: CODE. DS DATA ③ MOV DS,AX ④ MOV AX,0 ⑤ JLE NEXT ⑥ JNZ NEXT ⑦ JNZ LOPA ⑧ BEGIN 3.【程序三】①DX② SAR CL,1 49编程题(用完整段模式和简化段模式分别实现) 1.【程序说明】 编写一个在某项比赛中计算每一位选手最终得分的程序。计分方法如下 ①10名评委,在0~10的整数范围内给选手打分 ②10个得分中除去一个最高分(如有同样两个以上最高分也只除一个),除去一个最 低分(如有同样两个以上最低分也只除一个),剩下的8个得分取平均值为该选手的最终得 分 2.【程序说明】设有一个数组存放学生的成绩(0~100),编程统计0~59、60~69、70~79

N= ① R DW ? DATA ENDS CODE SEGMENT ② BEGIN:MOV AX,DATA ③ LEA BX,BUF MOV CX,N ④ LOPA: CMP [BX],BYTE PTR 0 ⑤ TEST [BX],BYTE PTR 1 ⑥ INC AX NEXT : INC BX DEC CX ⑦ MOV R,AX MOV AH,4CH INT 21H CODE ENDS END ⑧ 解: 1.【程序一】① AX>=BX ② INC CX 2.【程序二】 ① $-BUF ② ASSUME CS:CODE,DS:DATA ③ MOV DS,AX ④ MOV AX,0 ⑤ JLE NEXT ⑥ JNZ NEXT ⑦ JNZ LOPA ⑧ BEGIN 3.【程序三】① DX ② SAR CL,1 4.9 编程题(用完整段模式和简化段模式分别实现) 1.【程序说明】 编写一个在某项比赛中计算每一位选手最终得分的程序。计分方法如下: ① 10 名评委,在 0~10 的整数范围内给选手打分。 ② 10 个得分中,除去一个最高分(如有同样两个以上最高分也只除一个),除去一个最 低分(如有同样两个以上最低分也只除一个),剩下的 8 个得分取平均值为该选手的最终得 分。 2.【程序说明】设有一个数组存放学生的成绩(0~100),编程统计 0~59、60~69、70~79

80~89、90~100分的人数,并分别存放到 SCORE、 SCORED、 SCOREC、 SCOREB、 SCOREA 单元中 1.【程序】(完整段模式) DATA SEGMENT SCORE DB7,8,9,8,10,10,9,8,7,10 N=S-SCORE AVERAGE DB MAX DB MIN DB DATA ENDS CODE SEGMENT CODE ASSUME CS: CODE, DS, DATA START: MOV AX, dAtA MOV DS, AX MOV DL, SCORE MOV MAX DL MOV MIN DL MOV CX, N-1 MOV BX, 1 CYCLE: MOV AL, SCORE [BX] ADD DL, AL CMP AL. MAX JLE CMPMIN MOV MAX AL CMPMIN: CMP AL, MIN JGE NEXT )V MIN AL NEXT: INC BX LOOP CYCLE SUB DL, MAX SUB DL, MIN MOV CL 3 SAR DL, CL MOV AVERAGE, DL MOV AH. 4CH INT 21H CODE ENDS END START 1.【程序】(简化段模式) MODEL SMALL STACK

80~89、90~100 分的人数,并分别存放到 SCOREE、SCORED、SCOREC、SCOREB、SCOREA 单元中。 解: 1.【程序】(完整段模式) DATA SEGMENT SCORE DB 7,8,9,8,10,10,9,8,7,10 N=$-SCORE AVERAGE DB ? MAX DB ? MIN DB ? DATA ENDS CODE SEGMENT 'CODE' ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DL,SCORE MOV MAX,DL MOV MIN,DL MOV CX,N-1 MOV BX,1 CYCLE: MOV AL,SCORE[BX] ADD DL,AL CMP AL,MAX JLE CMPMIN MOV MAX,AL CMPMIN: CMP AL,MIN JGE NEXT MOV MIN,AL NEXT: INC BX LOOP CYCLE SUB DL,MAX SUB DL,MIN MOV CL,3 SAR DL,CL MOV AVERAGE,DL MOV AH,4CH INT 21H CODE ENDS END START 1.【程序】(简化段模式) .MODEL SMALL .386 .STACK

DATA SCORE DB7,8,9,8,10,10,9,8,7,10 N=S-SCORE AVERAGE DB MAX DB MIN DB CODE STARTUP MOV DL, SCORE MOV MAX DL MOV MIN, DL MOV CX N-1 MOV BX. 1 WHILE CX MOV AL, SCORE[BX ADD DL. AL IF AL> MAX MOV MAX, AL ENDIF IF AL MI MOV MIN AL ENDIF DEC CX SUB DL, MAX SUB DL, MIN SAR DL. 3 MOV AVERAGE DL END 2.【程序】(完整段模式) DATA SEGMENT SCORE DB90,23,56,67,98,78,10,45,87,100 N=S-SCORE SCOREF DB 0 SCOREE DB SCORED DB O SCOREC DB O SCOREB DB O SCOREA DB O DATA ENDS

.DATA SCORE DB 7,8,9,8,10,10,9,8,7,10 N=$-SCORE .DATA? AVERAGE DB ? MAX DB ? MIN DB ? .CODE .STARTUP MOV DL,SCORE MOV MAX,DL MOV MIN,DL MOV CX,N-1 MOV BX,1 .WHILE CX MOV AL,SCORE[BX] ADD DL,AL .IF AL > MAX MOV MAX,AL .ENDIF .IF AL < MIN MOV MIN,AL .ENDIF INC BX DEC CX .ENDW SUB DL,MAX SUB DL,MIN SAR DL,3 MOV AVERAGE,DL .EXIT END 2.【程序】(完整段模式) DATA SEGMENT SCORE DB 90,23,56,67,98,78,10,45,87,100 N=$-SCORE SCOREF DB 0 SCOREE DB 0 SCORED DB 0 SCOREC DB 0 SCOREB DB 0 SCOREA DB 0 DATA ENDS

CODE SEGMENT CODE ASSUME CS: CODE, DS: DATA START: MOV AX. DAtA MOV DS, AX LEA SI SCORE MOV CX. N MOV DL, 10 CLASS: MOV AH 0 MOV AL, [SII DIV DL SUB AL. 5 INC BYTE PTR SCOREF JMP NEXT GREAT: MOV AH 0 MOV BX, AX INC BYTE PTR SCOREF [BX] NEXT: INC SI AsS MOV AH, 4CH INT 21H CODE ENDS END START 2.【程序】(简化段模式) MODEL SMALL 386 DAT SCORE DB90,23,56,67,98,78,10,45,87,100 N=S-SCORE DATA? SCOREF DB O SCOREE DB O SCORED DB O SCOREC DB O SCOREB DB SCOREA DB O CODE STARTUP LEA SI SCORE MOV CX. N MOV DL, 10 REPEAT

CODE SEGMENT 'CODE' ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,SCORE MOV CX,N MOV DL,10 CLASS: MOV AH,0 MOV AL,[SI] DIV DL SUB AL,5 JG GREAT INC BYTE PTR SCOREF JMP NEXT GREAT: MOV AH,0 MOV BX,AX INC BYTE PTR SCOREF[BX] NEXT: INC SI LOOP CLASS MOV AH,4CH INT 21H CODE ENDS END START 2.【程序】(简化段模式) .MODEL SMALL .386 .STACK .DATA SCORE DB 90,23,56,67,98,78,10,45,87,100 N=$-SCORE .DATA? SCOREF DB 0 SCOREE DB 0 SCORED DB 0 SCOREC DB 0 SCOREB DB 0 SCOREA DB 0 .CODE .STARTUP LEA SI,SCORE MOV CX,N MOV DL,10 .REPEAT

MOV AH. O MOV AL, [SII DIV DL SUB AL. 5 IF(AL<=O) INC BYTE PTR SCOREF SE MOV AH 0 MOV BX. AX INC BYTE PTR SCOREF [BX] ENDIF INC SI UNTILCXZ EXIT END END

MOV AH,0 MOV AL,[SI] DIV DL SUB AL,5 .IF(AL<=0) INC BYTE PTR SCOREF .ELSE MOV AH,0 MOV BX,AX INC BYTE PTR SCOREF[BX] .ENDIF INC SI .UNTILCXZ .EXIT END END

点击下载完整版文档(DOC)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
已到末页,全文结束
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有