永发信息网

汇编语言程序设计(高起专) 求大神帮助回答以下两道题

答案:2  悬赏:70  手机版
解决时间 2021-03-20 12:38
  • 提问者网友:记得曾经
  • 2021-03-19 21:54
1 ( 问答题 ) 假设 VAR1 和 VAR2 为字变量, LAB 为标号,试指出下列指令的错误之处:
(1) ADD VAR1, VAR2 ;
(2) SUB AL, VAR1 ;
(3) JMP LAB [SI] ;
(4) JNZ VAR1 ;
(5) JMP NEAR LAB

2( 问答题 ) 假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非法的?它们的错误是什么?
(1) MOV BP, AL ;
(2) MOV WORD_OP [BX+4*3][DI], SP
(3) MOV WORD_OP1, WORD_OP2 ;
(4) MOV AX, WORD_OP1[DX] ;
(5) MOV SAVE_WORD, DS
(6) MOV SP, SS:DATA_WORD [BX][SI]
(7) MOV [BX][SI], 2 ;
(8) MOV AX, WORD_OP1+WORD_OP2
(9) MOV AX, WORD_OP1-WORD_OP2+100
(10) MOV WORD_OP1, WORD_OP1-WORD_OP2
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-03-19 22:55
1
(1)ADD VAR1,VAR2------两个操作数不能同时为内存单元
(2)SUB AL,VAR1--------第2个操作数为字单元,不匹配
(3)JMP LAB[SI]--------标号不能进行变址寻址
(4)JNZ VAR1-----------不能转到变量,只能转到标号
(5)JMP NEAR LAB-------near 多余

2
(1)MOV BP,AL----------------------------传送的类型不匹配
(2)MOV WORD_OP[BX+4*3][DI],SP-----------正确
(3)MOV WORD_OP1,WORD_OP2----------------传送指令两个操作数不能同为内存单元
(4)MOV AX,WORD_OP1[DX]------------------dx 不能作为基址或变址寄存器
(5)MOV SAVE_WORD,DS---------------------DS 段寄存器只能通过ax传递
(6)MOV SP,SS:DATA_WORD[BX][SI]----------ss 段寄存器使用错误
(7)MOV [BX][SI],2-----------------------未指定传送立即数的类型
(8)MOV AX,WORD_OP1+WORD_OP2-------------源操作数部分所代表的内存数据不能相加
(9)MOV AX,WORD_OP1-WORD_OP2+100---------问题同上
(10)MOV WORD_OP1,WORD_OP1-WORD_OP2------问题 同上、同(3)
全部回答
  • 1楼网友:慢性怪人
  • 2021-03-20 00:03
#include #include void main() { char str[21]= "guangzhou university"; char str1[21] = "guangzhou university"; char str2[5]= {'c','h','i','n','a'}; char str3[6]= {'c','h','i','n','a'}; char *pstr = "guangzhou university"; puts(str); puts(str1); puts(str2); puts(str3); puts(pstr); pstr="university"; puts(pstr); } 2、 #include void squarefun(int * in,int *out,int n) { int i; for(i=0;i
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯