首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

汇编程序有有关问题求指导

2012-03-28 
汇编程序有问题求指导题目是:NUM变量中定义了5个有符号数 U09H,V16H,W02H,X03H,Y05H 计算(U+V-W*X)/Y

汇编程序有问题求指导
题目是:NUM变量中定义了5个有符号数 U=09H,V=16H,W=02H,X=03H,Y=05H 计算(U+V-W*X)/Y并将结果显示在屏幕上
我的程序如下:
DSEG SEGMENT
NUM DB 09H,16H,04H,17H,05H
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:MOVAX,DSEG
MOV DS,AX
MOV AL,[NUM+2]
IMUL [NUM+3]
MOVBL,AL
MOVAL,[NUM]
ADDAL,[NUM+1]
SUBAL,BL
CBW
IDIV[NUM+4]
MOVBL,AL
MOVCL,0AH
SHRAL,4
xorah,ah
DIVCL
ADDAH,30H
MOVDL,AH
MOVAH,2
INT21H
MOVAL,BL
SHLAL,4
SHRAL,4
xorah,ah
DIVCL
ADDAH,30H
MOVDL,AH
MOVAH,2
INT21H
MOVAH,4CH
INT21H
CSEGENDS
END START
用masm运行 19 28 29行显示错误improper operand type
求指导啊,还有无符号数使用xor ah,ah扩展为数吗?
先谢谢了

[解决办法]
SHL AL, 4 这样的指令,是需要 386 或以上的 cpu 才支持的,汇编程序缺省的是 8086 级的指令集。
所以,要么将 cl 置 4 然后用 SHL AL, CL 这样的指令;要么在程序的开始处加上下面的两个语句:

Assembly code
.model  small  ; 注意,这两语句的顺序不能反了。必须使用 Masm6 或更高版本的汇编软件.386
[解决办法]
探讨
题目是:NUM变量中定义了5个有符号数 U=09H,V=16H,W=02H,X=03H,Y=05H 计算(U+V-W*X)/Y并将结果显示在屏幕上
我的程序如下:
DSEG SEGMENT
NUM DB 09H,16H,04H,17H,05H
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV D……

热点排行