我是一名计算机系的学生,这个学期我们开设了汇编语言这门课程,开课近两个月了,我发现我对这门语言几乎什么都不懂.看课本,发现全是细枝末节的东西要记忆,让我学起来很是困难
希望高手能一解我之学汇编语言的困惑,或者说学习汇编语言有没有什么窍门可言,或者说学习汇编有没有什么规律可言,谢谢
汇编语言的高手请进,问几个简单题目
1 XOR AL,AL INC AL NEG AL INC AL MOV BL,7FH ADC AL,BL 答:上述程序运行后,AL=80H,CF=0 2 下面程序段是判断寄存器AH和AL中第3位是否相同,如相同,AH置0,否则AH置非0。试把空白处填上适当的指令(一个空白只填一条指令)。答: xor ah,al AND AH,08H jz ZERO...
汇编高手请进。关于以下题目的代码(汇编语言的)。
;功能:把字符串中的大写改为小写.;入口:字符串起始地址为STR_ADDR ; 字符串是以0结尾.D2X MACRO STR_ADDR LEA SI, STR_ADDR LP1:MOV AL, [SI]CMP AL, 0 JE FINI CMP AL, 'A'JB NEXT CMP AL, 'Z'JA NEXT ADD AL, 20H MOV [SI], AL NEXT:INC SI J...
关于汇编语言的带符号数的有关问题,高手请进,急!
1、9098H是一个带符号数的补码,转换成二进制数为10010000 10011000B,它的最高位为1,即符号位为1,所以扩展后为11111111 11111111 10010000 10011000B,对应的十六进制数为FFFF9098H,同时,为了将以A到F开头的十六进制数和变量区分开,因为变量是以字母开头的,所以要将以A到F开头的十六进制数前加一个...
关于汇编偏移量的一些问题 高手请进
1、CPU有20根外部总线,最大可寻址2的20次方,就是1MB的内存地址。2、16位CPU最大寻址为2的16次方,就是经常说的64KB。3、1M是1024*1024,一个16位寄存器存储不下,所以分成两个寄存器存储。两个寄存器的数据怎么组合呢?标准就是前面一个寄存器的值左移四位+另一个寄存器的值 左移4位就相当于...
高手请进,关于C与汇编效率的讨论
前两个的差异和不稳定性,是多线程系统下任务分配造成的。第三个,说明工程配置和编译环境的干扰非常大。本身来说,现在的编程环境下,各种优化各种兼容,造成了C编译器编译的程序,汇编和C语言进行相同的操作没有本质差别(只有优化差别),无法通过这个方式进行汇编和C的效率比较。如果要比较,那么安装一...
汇编语言中的操作数寻址方式问题.存储器和寄存器问题?高手请进
首先内存和寄存器都是可以存放数据的 而寄存器是就那么几个,不可能把所有数据都放在寄存器里 寄存器里面是有值的,如果直接丢给CPU运算,就是寄存器寻址。如果把寄存器里面的数当作地址编号,跟据编号在内存里找到另一个数,就是存储器寻址。CS,DS,ES,SS是CPU的寄存器 MOV AX,DS 都是寄存器寻址方式...
关于低级的汇编试题!高手请进。重金悬赏
1.B 2.D 3.C 4.B 5.B 1.因为2的20次方为1MB 2.书上的。。。3.cpu是按地址访问内存单元的 4.XOR 相同时为0 5.DS data segment 书上的。。。
这道汇编怎么改,高手请进!
DATA ENDS STACK SEGMENT PARA STACK'STACK'DB 10 DUP(?)STACK ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA START:PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV BX,BDAT call binidec mov ah,1 int 21h RET MAIN ENDP binidec proc near mov cx,10000d call ...
单片机汇编语言JNC LOOP1(详细问题在里面,高手请进)
LOOP1是下个程序的标号,这个标号由你来给某个你想跳转到的子程序,当程序进行编译后,系统会自动将LOOP1转换成一个8位的二进制地址,至于这个二进制数字是多少就由编译系统来决定,而你决定的是程序转向哪里。你可以好好在想一想,相信你可以明白的 ...
为什么汇编总是divide overflow!!汇编高手请进
可能你使用的div指令时,比如进行16位除法,被除数为1000,除数为1,执行div时1000\/1=1000,而商1000在8位寄存器中存放不下,所以会出现溢出。