IBM_PC汇编语言程序的设计课后习题答案(第二版沈美明))

2026/4/27 0:00:31

SUB AL, ‘1’ ;是1~5吗?

JB ERROR ;小于1,错误

CMP AL, 4

JA ERROR ;大于5,错误

MOV BX, OFFSET SINGLIST

MUL AX, 4 ;(AX)=(AL)*4,每个歌曲程序的首地址占4个字节

ADD BX, AX

JMP DWORD PTR[BX] ;转去执行歌曲程序

ERROR: MOV DX, OFFSET ERRMSG

MOV AH, 09H

INT 21H ;显示错误信息

JMP BEGIN

SING1: ┇

JMP BEGIN

SING2: ┇

JMP BEGIN

SING3: ┇

JMP BEGIN

SING4: ┇

JMP BEGIN

SING5: ┇

JMP BEGIN

EXIT: RET

MAIN ENDP

CSEG ENDS ;以上定义代码段

;--------------------------------------------------------------------------

END START

5.25 试用8086的乘法指令编制一个32位数和16位数相乘的程序;再用80386的乘法指令编制一个32位数和16位数相乘的程序,并定性比较两个程序的效率。

答:8086的程序如下(假设为无符号数):

DSEG SEGMENT

MUL1 DD ? ;32位被乘数

MUL2 DW ? ;16位乘数

MUL0 DW 0,0 ,0 ,0 ;乘积用64位单元存放

DSEG ENDS

;--------------------------------------------------------------------------

CSEG SEGMENT

MAIN PROC FAR

ASSUME CS: CSEG, DS: DSEG

START: PUSH DS ;设置返回DOS

SUB AX, AX

PUSH AX

MOV AX, DSEG

MOV DS, AX ;给DS赋值

BEGIN: MOV BX, MUL2 ;取乘数

MOV AX, WORD PTR MUL1 ;取被乘数低位字

MUL BX

MOV MUL0, AX ;保存部分积低位

MOV MUL0+2, DX ;保存部分积高位

MOV AX, WORD PTR[MUL1+2] ;取被乘数高位字

MUL BX

ADD MUL0+2, AX ;部分积低位和原部分积高位相加

ADC MUL0+4, DX ;保存部分积最高位,并加上进位

EXIT: RET

MAIN ENDP

CSEG ENDS ;以上定义代码段

;--------------------------------------------------------------------------

END START

80386的程序如下(假设为无符号数):

.386


IBM_PC汇编语言程序的设计课后习题答案(第二版沈美明)).doc 将本文的Word文档下载到电脑
搜索更多关于: IBM_PC汇编语言程序的设计课后习题答案(第二版沈美明)) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219