谁有答案 或者自己做的答案参考? 6道题目没思路!
11 个解决方案
#1
没有这本书。友情帮顶
#2
IBM-PC汇编语言程序设计(第二版) 沈美明 温冬婵 编著
清华大学出版社
定价:34.80元
#3
我有第一版的,不过题目很多.你方便的话把题目发几个上来
#4
第五章课后习题
1段英文 ,变量名为ENG,以$结束,查找单词SUN在该文中出现次数,以‘SUN 次数’的格式显示(怎样查找SUN。。。。)
首地址TABLE 数组中按递增次序存放100H个16位补码数,编程把出现次数最多的数及出现的次数放在AX和CX中(递增会重复?)
数据段已经定义N个字节数据数组M,编程求出M中绝对值最大的数把他放在M+2N单元,偏移放在N+1单元(只会找最大的,不会找偏移)
DATA SEGMENT
M DB -1,2,3,-4,5,6,-7,8 DATA ENDS
data ends
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
LEA BX,M
S:MOV AL,[BX]
RCL AL,1
JC NO
JMP X
NO:NEG AL
ADD AL,1
MOV [BX],AL
X: INC BX
LOOP S
MOV CX,6
LEA BX,M
MOV AL,[BX]
MOV SI,BX
INC SI
D: CMP AL,[SI]
JAE TG
XCHG AL,[SI]
TG: INC SI
LOOP D
LEA BX,M
SHL si,1
ADD BX,SI
MOV [BX],AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
数组A包含15个互不相等的整数。B包含20个互不相等的整数 编程,把既在A又在B出现的整数存放在C中(长度不一样不会找)
从键盘输入一系列字符,以回车结束,并按字母 数字 及其它字符分类计数 最后显示3类计数结果(难道一个一个按照ASCII码的范围比较?)
#5
楼主,我看见你在坛子里的另外一个地方同样的问题
#6
穷阿!
#7
原来这本书上的题啊,那我在另一个帖子上说的话就错了...不过这本书上的题我是一题没做,当成参考书来看的...书是好书,知识面广,唯一缺憾是没介绍TSR程序,此书应多看...
#8
是阿 课后习题够我做 2两天的了 还是第五章。
我什么时候能达到你那水平就烧高香了
我想向 破解、病毒分析发展
#9
tsr程序在80x86 ibm pc及兼容计算机上有介绍主要介绍int9,int8的中断改写和驻留
另外,汇编语言课程设计 案例精编也有相关的时钟TSR的程序,中国水利水电出版社
另外,汇编语言课程设计 案例精编也有相关的时钟TSR的程序,中国水利水电出版社
#10
网上不是有答案吗,一搜就出来了,只不过自己得修改一下,自己要把程序看懂
#11
设有一段英文,其字符变量名为ENG,并以$字符结束。试编写一程序,查对单词SUN在该文中的出现次数,并以格式“SUN:xxxx”显示出次数。
答:程序如下:
DSEG SEGMENT
ENG DB ‘Here is sun, sun ,…,$’
DISP DB ‘SUN:’
DAT DB ‘0000’ , 0DH, 0AH, ‘$’
KEYWORD DB ‘sun’
DSEG ENDS
;--------------------------------------------------------------------------
CSEG SEGMENT
MAIN PROC FAR
ASSUME CS: CSEG, DS: DSEG, ES: DSEG
START: PUSH DS ;设置返回DOS
SUB AX, AX
PUSH AX
MOV AX, DSEG
MOV DS, AX ;给DS赋值
MOV ES, AX ;给ES赋值
BEGIN: MOV AX, 0
MOV DX, DISP-ENG-2 ;计算ENG的长度(每次比较sun,因此比较次数-2)
LEA BX, ENG
COMP: MOV DI, BX
LEA SI, KEYWORD
MOV CX, 3
REPE CMPSB ;串比较
JNZ NOMATCH
INC AX ;是,SUN的个数加1
ADD BX, 2
NOMATCH: INC BX ;指向ENG的下一个字母
DEC DX
JNZ COMP
DONE: MOV CH, 4 ;将次数转换为16进制数的ASCII码
MOV CL, 4
LEA BX, DAT ;转换结果存入DAT单元中
DONE1: ROL AX, CL
MOV DX, AX
AND DL, 0FH ;取一位16进制数
ADD DL, 30H
CMP DL, 39H
JLE STORE
ADD DL, 07H ;是“A~F”所以要加7
STORE: MOV [BX], DL ;转换结果存入DAT单元中
INC BX
DEC CH
JNZ DONE1
DISPLAY: LEA DX, DISP ;显示字符串程序(将DISP和DAT一起显示)
MOV AH, 09H
INT 21H
RET
MAIN ENDP
CSEG ENDS ;以上定义代码段
;--------------------------------------------------------------------------
END START
答:程序如下:
DSEG SEGMENT
ENG DB ‘Here is sun, sun ,…,$’
DISP DB ‘SUN:’
DAT DB ‘0000’ , 0DH, 0AH, ‘$’
KEYWORD DB ‘sun’
DSEG ENDS
;--------------------------------------------------------------------------
CSEG SEGMENT
MAIN PROC FAR
ASSUME CS: CSEG, DS: DSEG, ES: DSEG
START: PUSH DS ;设置返回DOS
SUB AX, AX
PUSH AX
MOV AX, DSEG
MOV DS, AX ;给DS赋值
MOV ES, AX ;给ES赋值
BEGIN: MOV AX, 0
MOV DX, DISP-ENG-2 ;计算ENG的长度(每次比较sun,因此比较次数-2)
LEA BX, ENG
COMP: MOV DI, BX
LEA SI, KEYWORD
MOV CX, 3
REPE CMPSB ;串比较
JNZ NOMATCH
INC AX ;是,SUN的个数加1
ADD BX, 2
NOMATCH: INC BX ;指向ENG的下一个字母
DEC DX
JNZ COMP
DONE: MOV CH, 4 ;将次数转换为16进制数的ASCII码
MOV CL, 4
LEA BX, DAT ;转换结果存入DAT单元中
DONE1: ROL AX, CL
MOV DX, AX
AND DL, 0FH ;取一位16进制数
ADD DL, 30H
CMP DL, 39H
JLE STORE
ADD DL, 07H ;是“A~F”所以要加7
STORE: MOV [BX], DL ;转换结果存入DAT单元中
INC BX
DEC CH
JNZ DONE1
DISPLAY: LEA DX, DISP ;显示字符串程序(将DISP和DAT一起显示)
MOV AH, 09H
INT 21H
RET
MAIN ENDP
CSEG ENDS ;以上定义代码段
;--------------------------------------------------------------------------
END START
#1
没有这本书。友情帮顶
#2
IBM-PC汇编语言程序设计(第二版) 沈美明 温冬婵 编著
清华大学出版社
定价:34.80元
#3
我有第一版的,不过题目很多.你方便的话把题目发几个上来
#4
第五章课后习题
1段英文 ,变量名为ENG,以$结束,查找单词SUN在该文中出现次数,以‘SUN 次数’的格式显示(怎样查找SUN。。。。)
首地址TABLE 数组中按递增次序存放100H个16位补码数,编程把出现次数最多的数及出现的次数放在AX和CX中(递增会重复?)
数据段已经定义N个字节数据数组M,编程求出M中绝对值最大的数把他放在M+2N单元,偏移放在N+1单元(只会找最大的,不会找偏移)
DATA SEGMENT
M DB -1,2,3,-4,5,6,-7,8 DATA ENDS
data ends
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
LEA BX,M
S:MOV AL,[BX]
RCL AL,1
JC NO
JMP X
NO:NEG AL
ADD AL,1
MOV [BX],AL
X: INC BX
LOOP S
MOV CX,6
LEA BX,M
MOV AL,[BX]
MOV SI,BX
INC SI
D: CMP AL,[SI]
JAE TG
XCHG AL,[SI]
TG: INC SI
LOOP D
LEA BX,M
SHL si,1
ADD BX,SI
MOV [BX],AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
数组A包含15个互不相等的整数。B包含20个互不相等的整数 编程,把既在A又在B出现的整数存放在C中(长度不一样不会找)
从键盘输入一系列字符,以回车结束,并按字母 数字 及其它字符分类计数 最后显示3类计数结果(难道一个一个按照ASCII码的范围比较?)
#5
楼主,我看见你在坛子里的另外一个地方同样的问题
#6
穷阿!
#7
原来这本书上的题啊,那我在另一个帖子上说的话就错了...不过这本书上的题我是一题没做,当成参考书来看的...书是好书,知识面广,唯一缺憾是没介绍TSR程序,此书应多看...
#8
是阿 课后习题够我做 2两天的了 还是第五章。
我什么时候能达到你那水平就烧高香了
我想向 破解、病毒分析发展
#9
tsr程序在80x86 ibm pc及兼容计算机上有介绍主要介绍int9,int8的中断改写和驻留
另外,汇编语言课程设计 案例精编也有相关的时钟TSR的程序,中国水利水电出版社
另外,汇编语言课程设计 案例精编也有相关的时钟TSR的程序,中国水利水电出版社
#10
网上不是有答案吗,一搜就出来了,只不过自己得修改一下,自己要把程序看懂
#11
设有一段英文,其字符变量名为ENG,并以$字符结束。试编写一程序,查对单词SUN在该文中的出现次数,并以格式“SUN:xxxx”显示出次数。
答:程序如下:
DSEG SEGMENT
ENG DB ‘Here is sun, sun ,…,$’
DISP DB ‘SUN:’
DAT DB ‘0000’ , 0DH, 0AH, ‘$’
KEYWORD DB ‘sun’
DSEG ENDS
;--------------------------------------------------------------------------
CSEG SEGMENT
MAIN PROC FAR
ASSUME CS: CSEG, DS: DSEG, ES: DSEG
START: PUSH DS ;设置返回DOS
SUB AX, AX
PUSH AX
MOV AX, DSEG
MOV DS, AX ;给DS赋值
MOV ES, AX ;给ES赋值
BEGIN: MOV AX, 0
MOV DX, DISP-ENG-2 ;计算ENG的长度(每次比较sun,因此比较次数-2)
LEA BX, ENG
COMP: MOV DI, BX
LEA SI, KEYWORD
MOV CX, 3
REPE CMPSB ;串比较
JNZ NOMATCH
INC AX ;是,SUN的个数加1
ADD BX, 2
NOMATCH: INC BX ;指向ENG的下一个字母
DEC DX
JNZ COMP
DONE: MOV CH, 4 ;将次数转换为16进制数的ASCII码
MOV CL, 4
LEA BX, DAT ;转换结果存入DAT单元中
DONE1: ROL AX, CL
MOV DX, AX
AND DL, 0FH ;取一位16进制数
ADD DL, 30H
CMP DL, 39H
JLE STORE
ADD DL, 07H ;是“A~F”所以要加7
STORE: MOV [BX], DL ;转换结果存入DAT单元中
INC BX
DEC CH
JNZ DONE1
DISPLAY: LEA DX, DISP ;显示字符串程序(将DISP和DAT一起显示)
MOV AH, 09H
INT 21H
RET
MAIN ENDP
CSEG ENDS ;以上定义代码段
;--------------------------------------------------------------------------
END START
答:程序如下:
DSEG SEGMENT
ENG DB ‘Here is sun, sun ,…,$’
DISP DB ‘SUN:’
DAT DB ‘0000’ , 0DH, 0AH, ‘$’
KEYWORD DB ‘sun’
DSEG ENDS
;--------------------------------------------------------------------------
CSEG SEGMENT
MAIN PROC FAR
ASSUME CS: CSEG, DS: DSEG, ES: DSEG
START: PUSH DS ;设置返回DOS
SUB AX, AX
PUSH AX
MOV AX, DSEG
MOV DS, AX ;给DS赋值
MOV ES, AX ;给ES赋值
BEGIN: MOV AX, 0
MOV DX, DISP-ENG-2 ;计算ENG的长度(每次比较sun,因此比较次数-2)
LEA BX, ENG
COMP: MOV DI, BX
LEA SI, KEYWORD
MOV CX, 3
REPE CMPSB ;串比较
JNZ NOMATCH
INC AX ;是,SUN的个数加1
ADD BX, 2
NOMATCH: INC BX ;指向ENG的下一个字母
DEC DX
JNZ COMP
DONE: MOV CH, 4 ;将次数转换为16进制数的ASCII码
MOV CL, 4
LEA BX, DAT ;转换结果存入DAT单元中
DONE1: ROL AX, CL
MOV DX, AX
AND DL, 0FH ;取一位16进制数
ADD DL, 30H
CMP DL, 39H
JLE STORE
ADD DL, 07H ;是“A~F”所以要加7
STORE: MOV [BX], DL ;转换结果存入DAT单元中
INC BX
DEC CH
JNZ DONE1
DISPLAY: LEA DX, DISP ;显示字符串程序(将DISP和DAT一起显示)
MOV AH, 09H
INT 21H
RET
MAIN ENDP
CSEG ENDS ;以上定义代码段
;--------------------------------------------------------------------------
END START